未捕获异常win 会写系统日志。
子线程没有捕获异常会导致这个问题,另外windows事件日志里看看有没有相关信息
在static void Main()函数里面注册异常回调函数,在闪退发生的时候会调用注册的回调函数,把异常信息记录到日志里面即可,查看日志文件就可以得到异常信息。 例子如下所示: static void Main() { { Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); Application.Run(new FromXXX()); 。。。。 static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { LogUnhandledException(e.Exception.Message + e.Exception.StackTrace); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { LogUnhandledException(e.ExceptionObject.ToString()); } static void LogUnhandledException(string msg) { StreamWriter sw = new StreamWriter(Application.StartupPath + "\\record.txt", true); sw.WriteLine(msg); sw.Close(); } }
我们只能告诉你在“闪退”前夕抓取dump。至于怎么分析dump无法告诉你,蓝屏+闪退即使微软都烦,因为只分析有dump才知道,而分析dump并没有成规,只是告诉你当时内存里到底有啥,当时cpu正在干啥 怎么抓dump,自己百度“C# minidump” 怎么拦闪退,自己百度“AppDomain.CurrentDomain.UnhandledException” 前两部都有成法 分析dump,同样可以百度“分析dump”,而分析dump无成法,各有各的上下文和关注点。要写成书可以是跟红宝书差不多厚
110,499
社区成员
642,576
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧