2 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
我懷疑你最好的辦法是通過內(nèi)存轉(zhuǎn)儲(chǔ)來診斷問題。如何獲得一個(gè),取決于你的異常處理代碼是如何設(shè)置的。
如果您的應(yīng)用程序本身處理異常(并且不會(huì)崩潰),則很難生成轉(zhuǎn)儲(chǔ)。您可以嘗試此處概述的方法:自動(dòng)生成 .NET 故障轉(zhuǎn)儲(chǔ)?;蛘?,如果您在拋出異常時(shí)讓應(yīng)用程序保持活動(dòng)狀態(tài)(使用對(duì)話框或其他東西),您可以要求用戶獲取內(nèi)存轉(zhuǎn)儲(chǔ)以進(jìn)行進(jìn)一步分析(通過任務(wù)管理器 => 右鍵單擊進(jìn)程 => 創(chuàng)建轉(zhuǎn)儲(chǔ)) .
如果您的應(yīng)用程序真的崩潰了,可以自動(dòng)創(chuàng)建一個(gè)轉(zhuǎn)儲(chǔ)文件,但這需要在注冊(cè)表中進(jìn)行配置(參見https://blogs.msdn.microsoft.com/tess/2010/08/23/getting-full-user -mode-dumps-automatically-when-your-process-crashes/ , https://www.meziantou.net/2018/06/04/tip-automatically-create-a-crash-dump-file-on-error ) .

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
我在 App.xaml.cs 文件中做了類似下面的事情
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
static string filePath = System.IO.Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData), "Log.txt");
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine("Message :" + e.Exception.Message + "<br/>" + Environment.NewLine + "StackTrace :" + e.Exception.StackTrace + "" + Environment.NewLine + "Date :" + Now.ToString());
writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
}
MessageBox.Show("An unhandled exception just occurred: " + e.Exception.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Warning);
e.Handled = true;
}
}
希望它會(huì)幫助你
- 2 回答
- 0 關(guān)注
- 409 瀏覽
添加回答
舉報(bào)