當我運行調試器時,沒有命中在Visual Studio中爲C++項目設置的斷點。Visual Studio中C++的斷點
當我啓動調試器我得到警告
調試信息「IEXPLORER.EXE」無法找到或不匹配。沒有符號加載。你想開始調試嗎?
我打yes繼續,但隨後的斷點我設置有一個警告說:
斷點不會被擊中當前。此文檔沒有符號加載
如何在調試項目時加載符號?我需要改變它的構建方式嗎?
當我運行調試器時,沒有命中在Visual Studio中爲C++項目設置的斷點。Visual Studio中C++的斷點
當我啓動調試器我得到警告
調試信息「IEXPLORER.EXE」無法找到或不匹配。沒有符號加載。你想開始調試嗎?
我打yes繼續,但隨後的斷點我設置有一個警告說:
斷點不會被擊中當前。此文檔沒有符號加載
如何在調試項目時加載符號?我需要改變它的構建方式嗎?
我要檢查的第一件事是您正在調試模式下構建。有一個組合框,您可以在工具欄中選擇Release和Debug模式。
在Release中,不包含調試信息。
第二件事是確保您將調試附加到正確的過程。您可以開始連接到進程(F5),也可以開始連接(Ctr-F5),然後手動連接(通過「調試」菜單,附加到進程)。
IEXPLORER
是您當前附加的過程。你確定這是正確的嗎?
最新的Internet Explorer有不同的過程模型,它固有地禁用了ActiveX控件的調試(我認爲你正在嘗試調試)。有一個註冊表設置,但可能會幫助你。
HKLM \軟件\微軟\的Internet Explorer \首頁> TabProcGrowth:DWORD
將該值設置爲0,你應該能夠控制調試。
我使用的是IE8,因此我嘗試設置此鍵並重新啓動Visual Studio。不幸的是,我仍然沒有得到任何輸出。 – opsb 2010-11-01 12:14:43
解決了我的問題 – michaelr524 2013-02-20 19:40:32
它看起來像你想如果Internet Explorer給你的麻煩連接到正確的流程來調試擴展到Internet Explorer(工具欄,BHO等)
,你可以讓你的進程崩潰上然後JIT調試它。在DllMain中使用DbgBreakPoint來做到這一點。 Visual Studio應該彈出一個窗口,詢問您是否要調試它。這有點落後,但應該幫助您避免IE瀏覽器可能會執行的所有過程。
這也將允許您看到來自其他問題的調試輸出,因爲您將附加正確的過程。
您必須確保的三件事情:
.pdb
文件,其中包含在那裏你試圖打破代碼的DLL,並確保該.pdb
文件包含源信息。如果你告訴我你使用哪種IDE /語言,我可以幫你確保。.pdb
文件;一個簡單的方法是複製。pdb文件接近你的二進制文件。如果加載了.pdb
文件,Visual Studio菜單Debug\Windows\Modules
中的工具窗口應在DLL文件行處的'Symbol Status'列中顯示'Symbol Loaded'。有了這個,你的斷點應該沒問題。
我遇到了這個問題,我能解決它的唯一方法是覆蓋「附加到進程」中的「自動確定要調試的代碼類型」選項。一旦我清除了「Silverlight」調試類型,那麼所有正確的模塊出現在iexplore.exe下,我的斷點點亮了,並且我能夠適當地進行調試。不知道爲什麼這是必要的,或者一直都是這樣,但這對我來說是有效的。
我正在構建一個IE插件,所以是的,它應該是我附加的IEXPLORER。我打F5以調試模式啓動,當它運行時,Stop-Debugging菜單項可用,所以我認爲它確實在運行。 – opsb 2010-11-01 11:56:09