内核点滴

WDK编译驱动错误: (xxx.obj): Error LNK2026: module unsafe for SAFESEH image.

    当我们用WDK编译驱动代码时,在链接时有可能遇到上述错误。原因可能使用的模块,如静态库的编译并没有使用SAFESEH,导致当前工程无法生成正常的SAFESEH。我们可以禁用SAFESEH机制来解决该Error,只需在source文件中,加入NO_SAFESEH = 1即可。

Win7下 DebugView使用,需设置下注册表才能监视核心:

HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Print Filter,新建一个DWORD值DEFAULT,将其设置成0xF,重启即可。


【Debug & Analyze】

无法打开Win8 dump 文件

    Win8 生成的dump文件,无法用Windbg 6.12.0002.633打开,提示“参数不正确”(Win32 error 0n87. The parameter is incorrect)。原因是Windbg版本低,要用最新适用于Win8的版本才行。无奈ms现在不提供Windbg单独下载,只作为WDK和SDK一部分,那就使用sdk下载工具sdksetup.exe,只选Windbg来下载吧,不过速度是很慢的!

另,WinDBG有两套版本号,一套是与NT内核一致的,比如6.2代表Win8,另一套是自己的,比如6.12. Win8的比6.12要新,相当于6.13+

http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/9768e33d-3f84-4ce4-9a25-269c1e048d9a


◆分析Dump文件:

如果你Assembly不熟的話,建議你讀他的另一本書,就會了解Assembly在Windows上如何運作
Windows Debugging: Practical Foundations

http://www.dumpanalysis.org/blog/index.php/2008/06/20/windows-debugging-practical-foundations/

Note 這本書寫的淺顯易懂,且小小一本

如果你熟assembly就直接從Volume 1開始讀即可

摘自评论:http://blog.miniasp.com/post/2008/05/18/Use-WinDbg-Analysis-and-Solve-Program-Hang-Problem.aspx

--------------------------------------------------------------------------------------------------------------------------

◆善用Verifier.exe工具的4 个特性来查找设备驱动程序的Bug,提高程序的健壮性:

●特殊内存池(Special Pool)

●内存池跟踪(Pool tracking)

●强制IRQL检测(Force IRQL Checking)

●低资源模拟(Low Resources Simulation)


【应用点滴】

CreateMapingFile 返回1006:

使用CreateFile打开的文件句柄传给CreateMapingFile,但CreateMapingFile一直返回1006错误。好一通查啊,结果原来是传入CreateFile的文件名称不对,应该是“ABC.exe”,而我只写了一个“ABC”,倒~!具体细节,待仔细研究~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值