阅读:3331回复:2
用windbg调试minifilter,在断点处停不下来
我用windbg调试minifilter驱动,想看看swapbuffer中InstanceSetup的运行过程,symbol path,source path, image path的设置都跟以前调试sfilter一样的(目录在swapbuffer下),在虚拟机上设置了verifier, 但是在运行fltmc load swapbuffers的时候,windbg没有停下,而是打印了如下错误:
* * This is the string you add to your checkin description * Driver Verifier: Enabled for S*** ERROR: Module load completed but symbols could not be loaded for SwapBuffers.sys [FltMgr] Mini-filter verification enabled for "swapBuffers" filter. 请问这是怎么回事?我怎么才能让windbg在断点停下? 编译环境是 Windows XP x86 checked build,swapbuffer项目拷贝过来都没有修改。 先谢谢啦! |
|
沙发#
发布于:2009-03-29 09:24
发现问题原因了,原来是swapbuffers.sys和swapbuffers.pdb的signature不同。
问题查找途径如下: 在windbg中用以下命令检查swapbuffers.sys的调试符号是否loaded !sym noisy lm .reload 发现没有load,有如下错误: DBGHELP: E:\code\swapBuffers\objchk_wxp_x86\i386\swapBuffers.pdb - mismatched pdb DBGHELP: E:\code\swapBuffers\objchk_wxp_x86\i386\sys\swapBuffers.pdb - file not found DBGHELP: E:\code\swapBuffers\objchk_wxp_x86\i386\symbols\sys\swapBuffers.pdb - file not found DBGHELP: e:\code\swapbuffers\objchk_wxp_x86\i386\swapBuffers.pdb - mismatched pdb DBGHELP: Couldn't load mismatched pdb for SwapBuffers.sys *** ERROR: Module load completed but symbols could not be loaded for SwapBuffers.sys 然后用如下命令检查为什么说是mismatched pdb kd> !itoldyouso swapbuffers E:\code\swapBuffers\objchk_wxp_x86\i386\swapbuffers.pdb SwapBuffers.sys Timestamp: 49CDE7A8 SizeOfImage: 3F80 pdb: e:\code\swapbuffers\objchk_wxp_x86\i386\swapBuffers.pdb pdb sig: 15C60CD2-DB0E-49DD-8EC6-97D5073EE70A age: 1 swapbuffers.pdb pdb sig: 8030BBE4-DA0D-425D-A0ED-3301413C28DB age: 1 sig MISMATCH: swapbuffers.pdb and SwapBuffers.sys 最后发现是签名不匹配。 有没有人知道是什么原因造成这个问题的?.sys和.pdb都是build命令产生的啊,签名从何而来? |
|
板凳#
发布于:2009-10-14 14:54
我的也说是没有匹配的pdb,一看也是签名不匹配。何故?
|
|