读书人

各位Csdner哪位高手能找出bug原因?

发布时间: 2012-02-15 12:09:44 作者: rapoo

求助各位Csdner,谁能找出bug原因???
今天测试人员跑应用程序的时候,连软件都没有显示出来就报出一个错误,信息如下:

Access violation at address 765CC35D in module 'kernel32.dll'. Write of address 00000004.

我用ProcExp查看程序堆栈如下:

Delphi(Pascal) code
ntoskrnl.exe!KeSetEvent+0x2a1ntoskrnl.exe!KeDelayExecutionThread+0x5ccntoskrnl.exe!KeWaitForSingleObject+0x393ntoskrnl.exe!KeQueryHighestNodeNumber+0x264ntoskrnl.exe!KeRemoveQueueEx+0x990ntoskrnl.exe!KeDelayExecutionThread+0x5ccntoskrnl.exe!KeWaitForSingleObject+0x393ntoskrnl.exe!NtWaitForSingleObject+0xc6ntoskrnl.exe!ZwYieldExecution+0xb62ntdll.dll!KiFastSystemCallRetkernel32.dll!WaitForSingleObjectEx+0x43kernel32.dll!WaitForSingleObject+0x12XXXXService.dll+0xbc7b4  //保护软件版权呵呵,把名字改成了XXXX,大家见谅!rtl100.bpl!SystemAssert$qqrx17SystemAnsiStringt1i+0x4akernel32.dll!BaseThreadInitThunk+0x12ntdll.dll!RtlInitializeExceptionChain+0xefntdll.dll!RtlInitializeExceptionChain+0xc2

各位谁能帮我找出错误???软件在我的环境下跑没有任何问题,但是在他的机器上就各种崩溃,各位帮帮忙!!!

[解决办法]
先从最初级的下手:
1,没有注册这个dll
开始-运行-cmd
regsvr32 kernel32 .dll
2,kernel32.dll的版本不对或者没有该dll文件上网下一个
http://www.ylmf.net/dll/kernel32_dll.html
理论上来说,版本高的都能向下兼容版本低的,再不最简单的,就是从你电脑上拷贝这个dll文件,到目标电脑,的system32目录里,覆盖掉,最后在注册一下,一般就没问题了~
[解决办法]
我觉得吧,可以再测试一台机子能否正常运行,,判断程序问题还是机子问题
[解决办法]
dll?
被谁调用?调用方式。。。。。。。。
名字可以不讲,这些背景还是要讲的吧
[解决办法]
多试几台不同操作系统的机子,有可能是版本不兼容
[解决办法]
测试人员的机器是裸机测试,还是放了各中防火墙?
[解决办法]
多线程编程时有些错误不是固定的,所以有时正常也不一定代表代码没问题,不要光从dll找错误,也仔细分析下代码,多用trycatch写日志看看
[解决办法]
Access violation at address 765CC35D in module 'kernel32.dll'. Write of address 00000004.


这个 DLL 的地址 765CC35D 这里 向 000000004 这个地方写数据。


先看看 765CC35D 这个地址是什么函数。。 应该是有一个指针指向4, 被当做指向的值是4 传进去了。

读书人网 >.NET

热点推荐