使用VS進行附加進程調試

    學習背景:實際開發中遇到一個bug,遊戲界面的賬號輸入框和密碼輸入框無法輸入字符,排除UI控件移植之後的不適應性之後,應該是在C++主程序出問題。項目包含工程大概在300個左右,此時的之前學習的F5調試已經滿足不了,需要get新技能:附加到進程調試。

    學習人物:小白一隻、大佬一個。

    過程:調試的過程中,我們首先在可能出問題的地方,打下斷點,也就是一個實心的小紅點,如果不清楚具體哪裏出問題,或者只想瞭解一下,函數的調用順序,那就在想了解的地方打出日誌。 

斷點打好之後,啓動我們要調試的進程,現在我是需要解決遊戲登錄界面賬號框和密碼框不能輸入的問題,所以我就打開遊戲,打開後,在任務管理器可以查看:

接着,進入我們的VS---------->調試---------->附加到進程

接着就會出現下面的對話框,並在下面的對話框中找到剛纔開啓的進程:

注意:此時VS可能提示你權限不夠,或者需要管理員權限,點擊“使用其他憑據重新啓動”,然後VS就會重新啓動,接着在附加到進程既可。

    此時可能出現斷點打不上的情況,因爲可能代碼被你改動過了。此時只要編譯一遍就行,如果不提前編譯的話,就會出現斷點打不下的情況。也就是斷點會變成一個空心圓。

如果成功附加到進程,就會:實心的紅點可以打下,VS底部會出現“就緒”的字樣

此時我們在進程有任何的操作的時候,程序就會在我們打斷點的地方停下來,有一個小箭頭

此時我們就可以使用F10和F11進行調試。

比如:現在我按下F10之後,小箭頭向下走一步。在調試窗口的下面有:“調用堆棧”這個選項。點擊之後,列出來的就是當前斷點所在函數的調用堆棧

從上向下,就是從棧頂到棧底。所以函數的調用順序應該是從下往上。這樣也有助於我們查找問題的根源。

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