做者:zhaohaiyang_1988@163.com (轉載需保留)windows
========================================================================================
進入調試的方法
========================================================================================
1. F5,項目右鍵菜單->調試->啓用新實例
點擊項目右鍵菜單->屬性->配置屬性->調試,能夠設置調試的相關參數:
一、命令:默認是$(TargetPath),就是啓動輸出的可執行程序
二、命令參數:啓動被調試程序時使用的命令行參數。
三、工做目錄:啓動被調試程序時使用的當前文件夾。影響GetCurrentDir,以及加載dll。
四、附加:否-啓動新進程 是-附加到已經存在的進程中
其它參數不經常使用,有興趣請百度之。服務器
2. 打開 工具 --> 附加到進程
3. 打開 任務管理器 --> 右鍵進程,選擇調試
4. DebugBreak附加:使用 DebugBreak()方式。
這種方法適用於源代碼量比較大,不容易定位問題的狀況下。在程序執行到DebugBreak()時,會彈出一個提示框。而後點擊取消會彈出選擇調試器
的對話框,而以後就能夠按照常規的調試(單步、單函數等)進行調試了。這種方法通常可以快速的定位問題!
5. Windows錯誤後附加:內存訪問、堆棧等系統錯誤在正確配置的機器和正確配置的程序錯誤模式下會彈出對話框,對話框中點取消後出彈出彈出選擇
調試器的對話框。
6. 斷言附加:斷言後,點擊重試,會彈出選擇調試器的對話框,先擇調試器後便可調試。
7. 本身程序內彈出MessageBox後附加:在想要附加調試的代碼以前先彈出任意消息對話框,而且設置斷點,而後附加。(其實相似4)。編輯器
=======================================================================================
開啓遠程調試。
=======================================================================================
打開vs2005的安裝目錄,能夠發現有個目錄爲 Remote Debugger。此文件夾能夠單獨的copy出來進行遠程調試。
或者在開始菜單中啓動「\程序\Microsoft Visual Studio 2005\Visual Studio Tools\Visual Studio 2005 Remote Debugger"」函數
無身份驗證模式
一、在調試目標機器中,打開遠程調試器程序(msvsmon.exe),win7下要使用管理員權限。
二、工具->選項->無身份驗證->容許任何用戶進行調試。
三、肯定。若是彈出防火牆阻止調試什麼的,嘗試選擇"取消xxxx的限制",每一個選項都試一下,直至能調試。或者關閉防火牆。工具
有身份驗證模式
未使用過,不解釋。this
也可以使用 Visual Studio 2005 Remote Debugger配置嚮導進行配置(未使用過,不解釋)。命令行
=======================================================================================
遠程調試。
=======================================================================================
一、在vs裏附加遠程調試器:
#vs菜單:工具->附加到進程
#在附加對話框中選擇「遠程(無身份驗證時只限本機)」
#在限定符中填寫開啓遠程調試器的機器的ip和端口。例:192.168.0.100:4015, www.kuai8.com:4015
#回車鍵後應該能夠看到「可用進程」,找到要調試的進程,點擊「附加」或雙擊之,就能夠附加上。
#而後其它調試步驟同本機調試。
二、也可使用遠程調試直接啓動目標機器上的程序:
#項目右鍵菜單->屬性->配置屬性->調試
#更改「要啓動的調試器」爲「遠程windows服務器」。
#遠程命令:填寫遠程調試目標機器上要調試啓動的程序的全路徑。命令參數和工做目錄相似本地調試,很少說明。
#遠程服務器名稱:遠程調試目標機器的ip和調試器端口。例:192.168.0.100:4015, www.kuai8.com:4015
#鏈接:根據遠程調試器開啓的調試類型,選擇「帶windows身份驗證的遠程訪問」或「不帶windows身份驗證的遠程訪問(僅限本機)」。
#而後F5,項目右鍵菜單->調試->啓用新實例 進入調試。 線程
=======================================================================================
dump文件調試。
=======================================================================================
一、使用vs打開dump文件,先看看模塊中,想調試代碼的模塊的位置(好比:生成dump時,主程序位置是C:\test\abc.exe)
二、在對應位置上放上對應版本的應用程序(如:C:\test\abc.exe)和pdb信息(也可手動加載其它地方的pdb)。
三、F5執行之,不過能看到的內容多少跟dump文件裏的內容多少有關。
四、執行過程當中須要參看源碼的時候,若是pdb裏記錄的源碼目錄和當前機器不同,會彈出選擇框提示選擇。
推薦使用「HardLinkShellExt」或junction添加目錄鏈接點,或者win7上直接添加源碼文件夾映射,將本身機器上的源碼目錄,映射到pdb裏記錄的位
置,方便調試。調試
定位問題的方法
========================================================================================
1.斷點: 在使用vs2005的時候,能夠在右下方堆棧輸出器中選擇"新增斷點"。這裏有兩種形式的斷點。
或者是使用F9添加斷點,添加普通斷點後能夠給斷點添加些特殊條件:
斷點管理器或者代碼編輯器中,使用斷點右鍵菜單:
一、位置:調整斷點在代碼中的行數
二、條件:可設置一些表達式
好比:i==4
this==0x00123456
index > 7
三、命中次數:斷點命中幾回後才斷下來調試。
四、篩選器和命中條件:有需求時自行使用,不解釋。進程
二、基本調試窗口:局部變量、線程、調用堆棧、自動窗口、內存。(內急,不寫了,有機會再說明)三、其它:即時窗口、監視、寄存器等。。。