VS2013写的winform程序 程序开始运行正常,不过不知什么时候就自动闪退,异常也捕捉不到 请大神指点迷津

weixin_45503450 2019-08-08 04:38:10
如上题,我在子窗体上开了个showdialog 然后在上面做了大量的操作,但是不知道为什么不明原因退出,用户用着用着就退了,我用异常捕获也捕获不到 日志里也没有退出信息 求大神们看看是啥原因
...全文
2604 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45503450 2019-08-11
  • 打赏
  • 举报
回复
引用 25 楼 xiaozhao127的回复:
[quote=引用 24 楼 xiaozhao127的回复:]兄弟程序是不是用了操作线程或外部组件调用。如果是线程设置为sta模式试试,如果外部组件,记得句柄销毁,回收内存如果。是循环里不停的申请内存,(如new操),作程序可用内存耗尽。windows二话不说直接沙雕你的进程。你说的这种有99.8%是内存耗尽被系统干掉的。
还有一个问题,如果是外部调用注意给的参数。判断一下是不是有效参数。这个也很重要。[/quote] 我也觉得是内存泄露 不过我还没测出来哪里泄露 不是有效参数也退出吗
xiaozhao127 2019-08-11
  • 打赏
  • 举报
回复
引用 24 楼 xiaozhao127的回复:
兄弟程序是不是用了操作线程或外部组件调用。如果是线程设置为sta模式试试,如果外部组件,记得句柄销毁,回收内存如果。是循环里不停的申请内存,(如new操),作程序可用内存耗尽。windows二话不说直接沙雕你的进程。你说的这种有99.8%是内存耗尽被系统干掉的。
还有一个问题,如果是外部调用注意给的参数。判断一下是不是有效参数。这个也很重要。
xiaozhao127 2019-08-11
  • 打赏
  • 举报
回复
兄弟程序是不是用了操作线程或外部组件调用。如果是线程设置为sta模式试试,如果外部组件,记得句柄销毁,回收内存如果。是循环里不停的申请内存,(如new操),作程序可用内存耗尽。windows二话不说直接沙雕你的进程。你说的这种有99.8%是内存耗尽被系统干掉的。
Chip_Liu1227812601 2019-08-10
  • 打赏
  • 举报
回复
最直接的解决方法就是打断点,在你的Program启动类上找到有Run关键字的行断住,往下一步步看。
秋的红果实 2019-08-10
  • 打赏
  • 举报
回复
windows日志有时候没有的 可以自己写日志,逐个模块排查
luj_1768 2019-08-10
  • 打赏
  • 举报
回复
以前使用正常么?可能需要安装.net 服务包。也许要装好几个版本,试试吧,都装到机器上了,问题肯定就解决了。。。
weixin_45503450 2019-08-10
  • 打赏
  • 举报
回复
引用 19 楼 wanghui0380的回复:
楼上的代码给错了,线程异常不是主要位置 主要位置在 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 当然其实这个只是在崩溃前记录一下日志,不能防止崩溃(实际上你不拦,他也会在楼上说的系统日志里记录) so,首先你第一步不是纠结代码,而是去看系统日志。只有在系统日志里找不到详细信息的时候,我们才会动代码 拦截一下,并抓出dump,以便分析问题 private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { LogHelper.Error("守护崩溃", (Exception) e.ExceptionObject); var filename = @"dump\" + Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".dmp"; MiniDumpDemo.MiniDumpToFile(filename); LogHelper.info("守护崩溃,已在" + filename + "生成dum文件"); } 有管loghelper,你自己实现。至于MiniDumpDemo这个是一个抓dump的类,你自己百度。 闪退原因太多,你不定位原因,我们帮不了。我个人瞬间能想到10多种闪退原因,所以没有基础定位,要说如何解决,都可以出本书了
这个异常捕捉我也写上了 不过也没捕捉到…你说的对 原因太多 我再多看看系统日志吧 还有就是我们单位很多机子用的还是xp win7的闪退的很少 但xp的就有点频繁了
XBodhi. 2019-08-09
  • 打赏
  • 举报
回复
你还是要调试,一行一行跑,看是哪一行直接崩的,不可能一起动立马就崩把
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
引用 13 楼 XBodhi.的回复:
你有用到什么 第三方的程序吗
有用到第三方的 这个怎么测试第三方的dll有没有bug呢
XBodhi. 2019-08-09
  • 打赏
  • 举报
回复
你有用到什么 第三方的程序吗
XBodhi. 2019-08-09
  • 打赏
  • 举报
回复
引用 2 楼 weixin_45503450 的回复:
[quote=引用 1 楼 github_36000833的回复:]系统会对程序闪退记录日志,一般能提供很好的线索。

打开系统日志,可以键盘按Win+R,运行窗口中输入eventvwr.msc,回车。

还有别的办法吗 从程序注意事项里[/quote]


正解,window 日志 => 应用程序里查看。
良朋 2019-08-09
  • 打赏
  • 举报
回复
估计是硬件问题,比如你用了USB转串口的硬件充当串口,我就遇到过这种问题。你先一个一个移除来排除。
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
引用 7 楼 it_gz_xi的回复:
1楼说的系统日志就很好用啊
我查了查没有有用的信息…
it_gz_xi 2019-08-09
  • 打赏
  • 举报
回复
1楼说的系统日志就很好用啊
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
引用 5 楼 stherix的回复:
往往是线程里出了异常/或者是调用了第三方本地dll中异常
应该是不是dll的事 而且是毫无征兆 毫无节操的退出 我真是无语了 有什么办法限制这种事情发生吗
stherix 2019-08-09
  • 打赏
  • 举报
回复
往往是线程里出了异常/或者是调用了第三方本地dll中异常
wanghui0380 2019-08-09
  • 打赏
  • 举报
回复
楼上的代码给错了,线程异常不是主要位置 主要位置在 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 当然其实这个只是在崩溃前记录一下日志,不能防止崩溃(实际上你不拦,他也会在楼上说的系统日志里记录) so,首先你第一步不是纠结代码,而是去看系统日志。只有在系统日志里找不到详细信息的时候,我们才会动代码 拦截一下,并抓出dump,以便分析问题 private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { LogHelper.Error("守护崩溃", (Exception) e.ExceptionObject); var filename = @"dump\" + Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".dmp"; MiniDumpDemo.MiniDumpToFile(filename); LogHelper.info("守护崩溃,已在" + filename + "生成dum文件"); } 有管loghelper,你自己实现。至于MiniDumpDemo这个是一个抓dump的类,你自己百度。 闪退原因太多,你不定位原因,我们帮不了。我个人瞬间能想到10多种闪退原因,所以没有基础定位,要说如何解决,都可以出本书了
weixin_45503450 2019-08-09
  • 打赏
  • 举报
回复
引用 16 楼 大便超人的回复:
想问下为什么不升vs版本呢
这个vs也有关系吗 亲
加载更多回复(6)

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧