使用VS進行附加程序除錯
阿新 • • 發佈:2018-11-01
學習背景:實際開發中遇到一個bug,遊戲介面的賬號輸入框和密碼輸入框無法輸入字元,排除UI控制元件移植之後的不適應性之後,應該是在C++主程式出問題。專案包含工程大概在300個左右,此時的之前學習的F5除錯已經滿足不了,需要get新技能:附加到程序除錯。
學習人物:小白一隻、大佬一個。
過程:除錯的過程中,我們首先在可能出問題的地方,打下斷點,也就是一個實心的小紅點,如果不清楚具體哪裡出問題,或者只想瞭解一下,函式的呼叫順序,那就在想了解的地方打出日誌。
斷點打好之後,啟動我們要除錯的程序,現在我是需要解決遊戲登入介面賬號框和密碼框不能輸入的問題,所以我就開啟遊戲,開啟後,在工作管理員可以檢視:
接著,進入我們的VS---------->除錯---------->附加到程序
接著就會出現下面的對話方塊,並在下面的對話方塊中找到剛才開啟的程序:
注意:此時VS可能提示你許可權不夠,或者需要管理員許可權,點選“使用其他憑據重新啟動”,然後VS就會重新啟動,接著在附加到程序既可。
此時可能出現斷點打不上的情況,因為可能程式碼被你改動過了。此時只要編譯一遍就行,如果不提前編譯的話,就會出現斷點打不下的情況。也就是斷點會變成一個空心圓。
如果成功附加到程序,就會:實心的紅點可以打下,VS底部會出現“就緒”的字樣
此時我們在程序有任何的操作的時候,程式就會在我們打斷點的地方停下來,有一個小箭頭
此時我們就可以使用F10和F11進行除錯。
比如:現在我按下F10之後,小箭頭向下走一步。在除錯視窗的下面有:“呼叫堆疊”這個選項。點選之後,列出來的就是當前斷點所在函式的呼叫堆疊
從上向下,就是從棧頂到棧底。所以函式的呼叫順序應該是從下往上。這樣也有助於我們查詢問題的根源。