[英]Visual Studio 2012 Express debugging explorer.exe - no breakpoint hit
我在調試SolidWorks Enterprise PDM插件時遇到問題。 我不知道如何在EPDM中處理插件,但是問題似乎與Visual Studio有關-也許其他平台的插件也有類似的問題。
添加調試插件(以便使用最新的源):
在Visual Studio 2010 Express中沒有問題-殺死瀏覽器,啟動它,附加到它,並:
使用Visual Studio 2012 Express無法實現相同的目的。 盡管它似乎是調試資源管理器(文件是只讀的,顯示了停止調試按鈕),但它沒有遇到斷點:
我在Windows 7 Professional x64上工作。 外接程序是使用.NET 3.5構建的。 我已經將VS2010和VS2012解決方案都使用了相同的問題。
我確實重新啟動explorer.exe,所以加載了最新版本的插件。 項目使用啟動操作“ explorer.exe”:
<StartAction>Program</StartAction>
<StartProgram>$(windir)\explorer.exe</StartProgram>
<StartArguments></StartArguments>
我不知道為什么沒有達到斷點,非常感謝任何幫助。
謝謝!
我檢查了漢斯的建議-還有另外兩個過程正在啟動,但是附加到它們上沒有任何結果。
那指出了另一件事-當我附加到那些進程時,在Visual Studio中有一個信息,即不會命中斷點,因為沒有加載調試符號-請注意,在附加的第三個映像中加載了調試符號(紅色圓圈填充且沒有感嘆號)。
當我將VisualStudio附加到托管的explorer.exe時,斷點被擊中!
似乎explorer.exe有時僅在托管模式下運行:
它甚至可以同時在兩種模式下運行:
因此,問題是如何強制Visual Studio在托管模式下啟動explorer.exe?
它可能是VisualStudio 2012錯誤嗎?
使用VS2010進行調試時,資源管理器以正常模式啟動,但是加載加載項后,它將切換到托管模式,並且VS2010在斷點處停止。
與VS2012不同的是-加載加載項時,explorer.exe不會切換到托管模式,並且不會命中斷點(因此是否已連接?)。
但是,當VS2012附加到已經處於托管模式的explorer.exe時,它將在斷點處停止。
我設法解決了問題的實質-在將VS2012附加到具有“自動確定要調試的代碼類型”的另一個進程(例如explorer.exe)時,該進程以純模式啟動,並且稍后加載托管代碼-調試器不會在斷點處停止。當進程已經處於托管模式時,在附加到或使用明確選擇的代碼類型附加時(“托管(v3.5,v3.0,v2。 0)“)-調試器在斷點處停止。
已經發布在連接上 -等待解決方案。 如果遇到與此更新中所述相同的問題,請投票。
我剛剛在一個簡單的托管外殼擴展上對其進行了測試,因此它與SolidWorks Enterprise PDM不相關。
截至2013年初,Microsoft聲稱調試器的行為不符合預期是一項設計決定 。 在第一個連接錯誤報告中有更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.