windows调式有关杂项

1.通过注册表设置自动调试器(当程序崩溃时,自动调用该调试器进行调试)

 x86机器:

 \\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug 

-->Debugger(调试器程序的绝对路径,后面跟一些参数:Path\Windbg -p %ld -e %ld。(-p %ld --->被调试进程的Id, -e %ld --->导致异常的事件))

-->Auto(指示是否自动运行调试器,0--弹出选择窗口决定是否调式,1--不弹出窗口直接进入调式)

注册项中的数据如下图所示:


Intel Itanium 机器:

64位程序:

\\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug 

32位程序:

\\HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

将windbg设为默认调式器:

cmd运行:path\Windbg.exe -I (注:I为大写) 或者,创建一个WinDbg快捷,“属性”--->"目标"设为path\windbg.exe -I(如下图)


2. 代码中设置断点

通过汇编设置: __asm{ int 3; }

通过系统调式api设置:DbgBreakPoint()



3. 当程序发生异常崩溃时,windows处理异常的步骤

a。查看是否有user-mode,有的话截获异常并中断,goto 步骤e

b。看程序中是否有try/catch块,有的话,catch块处理之,goto 步骤e

c。查看windows是否有一个打开的内核调试模式连接,有的话,连接这个kernel-mode调试器, goto 步骤e

d。通过查找注册表,启动设定的或默认的调式器处理

e。调试、记录崩溃信息或结束程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值