windows调试器设置

本文介绍Windows调试器Windbg的配置方法,包括JIT设置及镜像文件运行设置等技巧,适用于有一定Windbg基础的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程中,debug既是技术,又是技巧。熟练的掌握调试工具可以加速软件问题的解决,这对于底层开发和高级开发都是十分必要的。本文就windows调试器的设置问题,根据个人在windbg上的使用经验进行总结,既算是对自己的总结,也算是份大家一起分享自愿吧。本文的前提是windbg已经安装完毕,适合对windbg有一定了解的读者。

1.JIT设置。通过JIT设置,可以改变系统默认的调试器-drwtsn32。当程序抛出或发生异常时,如果没有程序自身进行异常处理,而且没有运到其他调试器的拦截,那么,系统会将此一场交给JIT的设置进行处理。这是 异常陷阱处理的一种情况,详细的原理可以参看"windows internal(4th edition)"。对windbg的设置比较简单,只要运行命令:windbg -I即可。实际上,修改了HKLM/Software/Microsoft/Windows NT/CurrentVersion/AeDebug的健值。如果要支持对托管程序的调试的话就要修改注册表:
HKLM/Software/Microsoft/.NETFramework/DbgJITDebugLaunchSetting 为2
HKLM/Software/Microsoft/.NETFramework/DbgManagedDebugger 为Windbg的路径
在windbg端进一步设置好symbol path和source path就可以在异常发生时进行step by step的调试了。

2.镜像文件运行设置。通过该设置,可以在制订程序运行时自动附加到windbg上去,太方便了:)。注册表项HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options的最后一个子项"Your Image File Name Here without a path",修改为镜像名称,如iexplore.exe。健值Debugger默认值ntsd -d,用来调试内核镜像的,可去掉-d,使用ntsd调试,也可以修改为windbg的路径。GlobalFlag健值是通过工具gflags.exe来修改的,具体到应用中再说了。

本文仅是对设置方法进行了梳理,在具体应用中就灵活一些了。比如关于如何调试 Windows 服务,可以参考http://support.microsoft.com/kb/824344

包含以下工具 accesschk.exe accesschk64.exe AccessEnum.exe AdExplorer.chm ADExplorer.exe ADInsight.chm ADInsight.exe adrestore.exe Autologon.exe autoruns.chm Autoruns.exe Autoruns64.exe autorunsc.exe autorunsc64.exe Bginfo.exe Cacheset.exe Clockres.exe Clockres64.exe Contig.exe Contig64.exe Coreinfo.exe ctrl2cap.amd.sys ctrl2cap.exe ctrl2cap.nt4.sys ctrl2cap.nt5.sys dbgview.chm Dbgview.exe Desktops.exe Disk2vhd.chm disk2vhd.exe diskext.exe diskext64.exe Diskmon.exe DISKMON.HLP DiskView.exe DMON.SYS du.exe du64.exe efsdump.exe Eula.txt FindLinks.exe FindLinks64.exe handle.exe handle64.exe hex2dec.exe hex2dec64.exe junction.exe junction64.exe ldmdump.exe Listdlls.exe Listdlls64.exe livekd.exe LoadOrd.exe LoadOrd64.exe LoadOrdC.exe LoadOrdC64.exe logonsessions.exe logonsessions64.exe movefile.exe movefile64.exe notmyfault.exe notmyfault64.exe notmyfaultc.exe notmyfaultc64.exe ntfsinfo.exe ntfsinfo64.exe pagedfrg.exe pagedfrg.hlp pendmoves.exe pendmoves64.exe pipelist.exe pipelist64.exe PORTMON.CNT portmon.exe PORTMON.HLP procdump.exe procdump64.exe procexp.chm procexp.exe procmon.chm Procmon.exe PsExec.exe PsExec64.exe psfile.exe psfile64.exe PsGetsid.exe PsGetsid64.exe PsInfo.exe PsInfo64.exe pskill.exe pskill64.exe pslist.exe pslist64.exe PsLoggedon.exe PsLoggedon64.exe psloglist.exe pspasswd.exe pspasswd64.exe psping.exe psping64.exe PsService.exe PsService64.exe psshutdown.exe pssuspend.exe pssuspend64.exe Pstools.chm psversion.txt RAMMap.exe readme.txt RegDelNull.exe RegDelNull64.exe regjump.exe RootkitRevealer.chm RootkitRevealer.exe ru.exe ru64.exe sdelete.exe sdelete64.exe ShareEnum.exe ShellRunas.exe sigcheck.exe sigcheck64.exe streams.exe streams64.exe strings.exe strings64.exe sync.exe sync64.exe Sysmon.exe Sysmon64.exe Tcpvcon.exe tcpview.chm Tcpview.exe TCPVIEW.HLP Testlimit.exe Testlimit64.exe Vmmap.chm vmmap.exe Volumeid.exe Volumeid64.exe whois.exe whois64.exe Winobj.exe WINOBJ.HLP ZoomIt.exe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值