cdust 发表于 2021-5-11 21:17:58

请教C#WPF闪退时生成DUMP文件的办法

C#WPF闪退时查不到问题,需要生成DUMP文件,但是网上查了很多都不能用,使用的是VS2019,请教有没有办法,谢谢!

chenchaoting 发表于 2021-5-11 21:28:43

try catch不行嘛

yuyu87 发表于 2021-5-12 08:45:08

闪退如果没有系统对话框弹出,没有指示错误行,通常都是线程引起的,这时候你主要查找一下你使用Thread和Task代码的地方

vtte 发表于 2021-5-12 09:25:00

查Windows事件查看器里的系统日志和应用程序日志。

Error.Dan 发表于 2021-5-12 09:38:00

仅仅是闪退,而且每次都复现的话,起码C#不需要用dump file这么原始的方案,语言级的异常管理和高级调试对M$这种靠赚程序员钱起家的公司来说是基本功.

首先是全局异常,这个基本上就能搞定99%的场景,几乎所有的闪退都会在全局未响应异常(WPF可能名字不一样,但是肯定有)里露个脸,因为肯定是有异常发生未处理或者处理的不对,本身C#的异常链机制就是为了确保不丢异常信息的.
其次,远程调试,直接从远程调试启动或者启动后附加到进程,想看啥,随便.

基本上你这个问题就在全局异常里面打个点或者写个日志什么的就够了,异常信息会非常完整的把异常链记录下来,然后你就知道哪里有问题了.
真搞dump file那一套,还要上wingdb啥啥的,太麻烦了

wudicgi 发表于 2021-5-12 10:30:28

我用的一个叫 Usb.Net 的 C# USB 库,错误处理不完善,代码中会在单开的线程中抛异常,外部根本没法 catch, 对于 release 版出了问题就是闪退
最后 fork 了原版的代码进行修改,同时把直接使用 Usb.Net 的代码单独提出去作为一个进程,用 WCF 与主程序通信才算凑合能用,起码不至于有问题主程序就崩了

cdust 发表于 2021-5-12 20:17:32

Error.Dan 发表于 2021-5-12 09:38
仅仅是闪退,而且每次都复现的话,起码C#不需要用dump file这么原始的方案,语言级的异常管理和高级调试对M$这 ...

我也是和你一样想的,结果打了数据都没有问题,在家里的电脑上测试没有问题,在用户电脑上就不行。而且打出来的数据很正常。
我是操作了IO,改文件名字

cdust 发表于 2021-5-12 20:18:19

yuyu87 发表于 2021-5-12 08:45
闪退如果没有系统对话框弹出,没有指示错误行,通常都是线程引起的,这时候你主要查找一下你使用Thread和Ta ...

操作IO,改文件名字,问题是打印出来的数据都没有问题

Error.Dan 发表于 2021-5-13 13:57:43

cdust 发表于 2021-5-12 20:17
我也是和你一样想的,结果打了数据都没有问题,在家里的电脑上测试没有问题,在用户电脑上就不行。而且打 ...

https://www.cnblogs.com/killmyday/archive/2010/09/05/1818533.html

建议考虑环境问题,不能复现的故障是没法修的.比如精简系统导致的系统监控功能不完整,你这个情况基本上是操作系统接管了以后给关了,那么系统里面会有痕迹的.

其次,你现在的异常捕获是放到哪里的,建议贴点代码来看看,理论上会有痕迹的.
页: [1]
查看完整版本: 请教C#WPF闪退时生成DUMP文件的办法