约有 1,303 项符合查询结果, 以下是第 81 - 131项。
费时 < 1 秒。
对于较新的芯片组,比如ICH9或者ICH10,有两个EHCI,每个EHCI的0号口都支持调试,所以可以确认一下是不是有一个0号口接出来了。
如果不支持交互式的双机内核调试,那么要看问题的复杂度了,对于某些问题,可以尝试使用本地内核调试;使用DbgView等工具看调试信息(DbgPrint)...
1394方式本来就不太稳定,主机端使用转接口理论上可行,但是目标那端应该是不可以的;没有实际尝试过。
Posted in Windows内核调试
by
格蠹老雷
on 2009-11-10
通常两种做法,一是启用内核调试,然后使用串口等方式双机交互式调试;二是,启用热键强制让系统蓝屏崩溃,然后取出DUMP文件分析。
Posted in Windows内核调试
by
格蠹老雷
on 2009-11-08
搞破坏比建设容易的多,要看具体情况了,如果真想搞个水落石出,建议用内核调试跟踪一下。
这个函数在XP之前是三个参数,XP起改为两个参数了,其实是加了一个新函数,用原来的名字,老的函数改名为DbgkpSendApiMessageLpc,反汇编一下还可看到。
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2009-11-06
多谢客气(很多人问问题很凶的:-))
event filter可以用于内核事件,也可以用于用户态,但是内核会话通常不处理用户态事件,这是为了防止频繁的用户态事件影响内核调试,要知道内核调试是依赖双机通信的,每次中断到调试器至少要花毫秒级的时间,因此这是by ...
Posted in C/C++本地代码调试
by
格蠹老雷
on 2009-11-02
这么刻苦,要吃点肉的:-)
啥本事也不是一天两天炼成的吧?我很信奉1万小时定律(http://advdbg.org/blogs/advdbg_system/articles/3204.aspx)
当然也要讲究方法,比如在我看来,用调试器来学习内核是个不错的方法,感兴趣的地方下断点,断下来慢慢分析,高兴了还可以跟踪几步,“走几步,看看”...
Posted in Windows内核调试
by
格蠹老雷
on 2009-10-31
LockCount字段的初始值为-1,被线程拥有后,大于等于0,反映等待和已经进入关键区的线程数;在本例中,LockCount为0,所以这个线程进不去了;OwningThread按说不该为0。可能的情况是这个对象被意外破坏了,比如缓冲区溢出。
如果这个问题能够重现,那么可以在问题发生前设置变量监视断点(ba)...
看来,上面两位都是参加了SD大会的,PPT和几个演示用的小程序都上传到这个网站了:
PPT
小程序
Posted in Windows内核调试
by
格蠹老雷
on 2009-10-31
是释放全局对象(全局变量)时出的问题,出问题的是CString类型的变量,或者包含CString类型字段的变量;从00030000这个堆释放(free)CString的缓冲区(000348EC )时,出错了。
从上面的栈回溯来看,目前你使用的符号文件还不准确,EXE文件(PMMis.exe)没有符号,ntdll的符号文件也有问题,RtlpNtMakeTemporaryKey显然是噪声。建议先把符号文件弄好...
Posted in C/C++本地代码调试
by
格蠹老雷
on 2009-10-28
这个错误信息的英文是:
There are no more endpoints available from the endpoint mapper.
这是RPC有关的一个错误,KB中有关于这个问题的建议:http://support.microsoft.com/kb/839880
Posted in Windows内核调试
by
格蠹老雷
on 2009-10-27
启用JIT调试(WinDBG -I),调试器启动后,看栈回溯...
Posted in Windows内核调试
by
格蠹老雷
on 2009-10-27
你描述的是内核调试会话,而Kernel32.dll是个用户态模块,所以没有如你所期望的中断到调试器。如果想继续在内核会话试验,那么可以试验一个驱动模块。如果想监视用户态DLL加载,那么可以调试一个应用程序,在用户态会话中做实验。
Posted in C/C++本地代码调试
by
格蠹老雷
on 2009-10-27