2017-05-30 21 views
2

我發現自己在這個相同的問題,而不是here,我在一個dll中使用Windows窗體(這是一個Autocad插件),我無法調試我的代碼,因爲我收到「應用程序處於中斷模式,您的應用程序已進入中斷狀態,但當前沒有執行選定調試引擎支持的代碼「。我已經嘗試了this list中的所有建議,但都沒有爲我工作。奇怪的是,我可以在構造函數中斷開,但使用controller/config對象的事件會獲取該頁面。應用程序處於中斷模式。您的應用已進入休息狀態,

任何想法,爲什麼會發生這種情況?

在此先感謝

+0

是否沒有涉及線程? –

+0

還沒有,有一種方法會在某個時候對Web服務器進行異步調用,但現在只是一些使用控制器訪問EF中本地數據庫中某些數據的表單。但該頁面顯示在表單中的每個事件。 – user3223834

+0

大部分建議都是我將要開始的地方。另外,它是不是打開兩次(或在另一臺PC上)。確保並在構建下運行「清理」 - 並確保該過程未啓動多個。此外,確保你的構建是有效的,即你沒有說「編譯錯誤 - 繼續舊構建」等。 –

回答

1

我從來沒有與AutoCAD的工作,但我做了SolidWorks和克里奧參數上幾個插件。在這裏,當我的斷點不工作我通常做的:

  1. 確保項目設置的構建選項卡上

    • DEBUG常數是
    • 調試信息設置爲全
    • 優化代碼是關閉的
  2. 對於有問題的代碼添加System.Diagnostics.Trace.WriteLine("something unique");並運行它沒有附加視覺工作室,以確保您的代碼實際上被調用。從sys內部檢查DebugView utility

  3. 確保您的DLL的正確副本加載:
    1. 運行從Visual Studio解決方案,你通常會做
    2. 檢查,如果你連接到正確的流程。
    3. 在Autocad中執行觸發代碼的操作。
    4. 單擊VS中調試工具欄中的「打斷所有」按鈕
    5. 打開Debug-> Windows-> Modules窗口並確保您的dll存在於列表中,路徑是正確的,並且您的dll旁邊有pdb文件它。
  4. 添加到 System.Diagnostics.Debugger.Launch();System.Diagnostics.Debugger.Break();調用你的代碼。

希望這可以幫助,讓我知道如果你需要澄清的任何步驟。

2

在我的情況下,我在調用MVC API端點時收到了同樣的消息,並且它也拋出了堆棧溢出異常。原因是外部DLL中的對象屬性,該對象屬性是使用後臺字段寫入的。該屬性的set訪問器被意外地寫入來設置屬性而不是引起無限循環的後臺字段,因此導致了堆棧溢出異常。注意setter中缺少的下劃線。

private string _Prefix; 
public string Prefix 
{ 
    get { return _Prefix; } 
    set { Prefix = value; } 
} 

儘管您的問題可能與我的問題不盡相同,但類似的問題在外部DLL中也會出現。

相關問題