windows调试器设置
編程中,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。
總結
以上是生活随笔為你收集整理的windows调试器设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zw*与Nt*的区别
- 下一篇: 也谈SSDT Hook(一)