簡體   English   中英

無法調試正常工作:.NET 4.0,Windows 2003 Server

[英]Can't get debugging to work: .NET 4.0, Windows 2003 server

我有一個在生產服務器上運行的.NET 4.0控制台應用程序。 該應用程序是臨時運行的,被編譯為調試版本,並且所有調試符號都通過exe發送到服務器。

當應用程序中引發異常時,我希望它會不正常地死掉,並像任何舊的控制台應用程序一樣將堆棧打印到控制台。 相反,我看到的行為是這樣的:

  1. 出現“ JIT調試器”窗口,詢問進行調試。
  2. 如果我說“是”,它會啟動VS 2005的某些極其有限的版本。我被轉存為匯編語言,無法看到源代碼或文件名。 所有級別的堆棧跟蹤都屬於這種情況。
  3. 如果我說“ no”,則根本不會將任何信息寫入控制台。

我試過在Powershell外殼程序和傳統cmd控制台中運行此命令,效果相同。

該服務器運行ASP.NET 4.0,將這些錯誤返回到瀏覽器沒有任何問題。

我想要的是簡單地看到真正的錯誤,並在不彈出JIT的情況下將堆棧打印到控制台。 除了全球性的捕獲和寫入,我還有哪些選擇?

using System;

class Program {
    static void Main(string[] args) {
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        throw new Exception("test");
    }

    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
        Console.WriteLine(e.ExceptionObject.ToString());
        Console.ReadLine();
        Environment.Exit(1);
    }
}

最好的選擇是使用Windbg調試和分析應用程序: http : //www.microsoft.com/whdc/devtools/debugging/default.mspx

您可以在Windbg中使用SOSEX擴展進行托管調試: http : //www.stevestechspot.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM