阅读:2480回复:16
如何调试驱动程序。
我的程序运行一段时间后或高速读取测试时会导致系统崩溃。
怎么调试呢? |
|
最新喜欢:![]()
|
沙发#
发布于:2002-08-21 15:21
我在用 direct 方式来读数据的时候, 在98下分配 mdl 没有问题,但是再 win2000下 读取时间长了,就会蓝屏
|
|
|
板凳#
发布于:2002-08-21 10:21
[quote][quote]我的程序运行一段时间后或高速读取测试时会导致系统崩溃。 你先让他慢速读取呢? [/quote] 慢速读取没有问题。 [/quote] 你那是一个什么样的程序?你具体怎样设定读取速度的呢? 能具体描述一下么? |
|
|
地板#
发布于:2002-08-20 21:17
找到一个问题了。
在设置消息时OBREFRENCEBYHANDLE()函数在使用前等级被lockspin之类的函数抬高了irq的级别,所以兰屏。 |
|
|
地下室#
发布于:2002-08-20 19:41
Debug所有你分配和释放的指针即可
当然你可使用链表来记录等到一段时间后比较 |
|
5楼#
发布于:2002-08-20 19:28
是否有释放内存的地方没有将被释放的地址置空呢?
例如: //访问内存时: if(p != NULL) { //访问内存 } 释放内存时: free(p); //缺少p = NULL; :) |
|
6楼#
发布于:2002-08-20 08:51
在setting,
special pool可以检查是不是overrun(默认),越界了就会访问到无效的页面,蓝掉。 pool tracking不说了,估计你用不上。 force IRQL checking可以检查是不是在比较高的IRQL不小心访问了paged内存。有时候这个paged 内存就在物理内存,不会出错,有时候不在,就出错。 low resource simulation模拟资源不够的情况,让你分配内存不成功,看你会不会蓝掉。 觉得你很可能是越界,或没有释放内存。 |
|
7楼#
发布于:2002-08-19 17:26
我把内存的大小设为4096了,也就是整个页面,现在出错的时间比以前有所延迟。
出错的原因是: unhandle exception NTSTATUS = STATUS_ACCESS_VIOLATION verifier怎么设定?我把能打勾的都勾上了。 怎么看是否出问题了。 |
|
|
8楼#
发布于:2002-08-19 14:49
用SOFTICE或两台机器联调。
|
|
9楼#
发布于:2002-08-19 14:47
这种情况往往是内存泄漏,指针跑掉了,或是内存没有合理释放。 同意 |
|
|
10楼#
发布于:2002-08-19 11:09
这种情况往往是内存泄漏,指针跑掉了,或是内存没有合理释放。
|
|
11楼#
发布于:2002-08-19 10:56
verify你怎么设置的?
没有释放资源? [编辑 - 8/19/02 by arthurtu] |
|
12楼#
发布于:2002-08-19 10:25
估计内存处理有问题吧。 我也这么想。但是怎么知道是什么问题呢? 如果用driver verifier 检查驱动,在打开文件之后就出现page问题。我用SOFTICE跟踪过了,在我的程序中没有出错,出了我的程序后,才出现系统page问题。我应该怎么办? |
|
|
13楼#
发布于:2002-08-19 10:22
[quote]我的程序运行一段时间后或高速读取测试时会导致系统崩溃。 你先让他慢速读取呢? [/quote] 慢速读取没有问题。 |
|
|
14楼#
发布于:2002-08-18 15:19
投票:
1。内存(指针)处理有问题。 2。不可能不是内存(指针)处理有问题。 :) |
|
|
15楼#
发布于:2002-08-18 13:04
我的程序运行一段时间后或高速读取测试时会导致系统崩溃。 你先让他慢速读取呢? |
|
|
16楼#
发布于:2002-08-18 09:45
用户被禁言,该主题自动屏蔽! |
|