WinDbg 使用教程系列之三——再探自己寫的可執行程序(.exe)的調試

前言

此係列文章接下來就是來源於微軟官方文檔的二次創作,

如果要有更深入的瞭解,建議直接去看:微軟WinDbg官方文檔

調試器命令說明:微軟WinDbg命令官方文檔

然後此片文章所用的調試程序可從這裏下載:鏈接

正文

此片還是對上一篇文章中的命令進行復習,只不過這次要調試的程序是自己寫的程序(此例中的程序本身就存在異常),也就是說可以看到程序的源代碼和了解其執行邏輯,我們就是要來調試這個異常。

1.找到程序,使用WinDbg打開,因爲這個exe是個C++寫的控制檯程序,所以選中打開後的效果如下,會彈出一個黑框

2.然後輸入如下命令:

注意:這裏第二條命令就是可執行程序所在的路徑,需要自己修改

.symfix

.sympath+ D:\代碼倉庫\本地測試\Gitee倉庫\WinDbgDemo\FirstDemo_CPlusPlus\Debug

執行效果:

3.在輸入如下命令:

.reload

bu FirstDemo_CPlusPlus!main //設置斷點

g //執行程序

注意:這裏第二條命令就是可執行程序的名字,我已經改成我自己的,跟官方文檔不一樣

在執行第二條命令時,輸出結果會有個警告(這裏在目前演示下暫時沒影響,所以未去解決掉):

在執行完命令 g 後,會跳入用命令bu在main函數中設置的斷點,然後按F11,黃色箭頭會跳到如下語句停住,然後輸出紅框的結果(也就是開頭說的異常問題)

不按F11,可以點擊工具欄上面的單步執行的按鈕,如下圖

4.在輸入此命令:

!analyze -v

輸入回車後可能要等一小下

輸出結果如圖:

紅框位置就是產生異常的原因: 0被用作除數了,也就是如下情況 2 / 0

然後這一篇也到此結束了,此篇文章想要說明什麼問題呢,就是沒有通過啓動源代碼的方式去調試程序閃退的問題,同時找到對應的問題操作流程。😎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章