读书人

程序为什么突然退出

发布时间: 2012-11-04 10:42:42 作者: rapoo

程序为何突然退出
操作系统:windows xp sp3
程序开发工具:vs2010c#,在程序中有调用c写的dll
现象:
程序无规律、无故、偶尔、突然退出,即突然消失,我在程序的Main中加了一个catch也无法捕捉到错误信息。
请教各位,这是什么原因呢,如何定位到错误位置?

[解决办法]
这……有点难猜,试试先不引用那dll看看
[解决办法]
估计是调用出错了,一些致命错误导致退出,最常见的就是死循环,你就一下日志,看看是哪部草组引起崩溃的
[解决办法]
你试试在 main 第一行注册 AppDomain.CurrentDomain.UnhandledException 事件

C# code
AppDomain.CurrentDomain.UnhandledException += (v1, v2) =>{    Exception ex = (Exception)v2.ExceptionObject;    // 这里加些提示代码,比如往文件里写些出错信息,看看这样能不能捕获到异常};
[解决办法]
c的东西一旦出错你这里应当是获取不到什么很有价值的信息
你不放在dll里面写日志
[解决办法]
异常抛到C的dll代码了
[解决办法]
显然是那个C的dll有Bug,要有源码,调试一下
调试dll
[解决办法]
用3L的方法加日志,程序如遇到无法处理的异常自动退出时会记录日志。
[解决办法]
要是在CATCH中捕获不到的话

本人感觉好像在DLL中出问题了


[解决办法]
估计c调用dll出问题了,vs无法处理此异常,会自动退出
[解决办法]
dll的错误try不了的,只能看它的源码了,估计内存溢出可能性比较大。
[解决办法]
探讨
你试试在 main 第一行注册 AppDomain.CurrentDomain.UnhandledException 事件

C# code
AppDomain.CurrentDomain.UnhandledException += (v1, v2) =>
{
Exception ex = (Exception)v2.ExceptionObject;
// 这里加些提示……

[解决办法]
没源码可能是够呛的。以前曾遇到过这样的问题。发现是本机dll有Bug,就是野指针、错误的内存写入什么的,然后估计是因此破坏了托管堆栈或其它数据区段
或者向厂家反映一下,或者从dll调用时待传入的实参入手,先进行严格的检查或限制
[解决办法]
探讨
或者从dll调用时待传入的实参入手,先进行严格的检查或限制

[解决办法]
直接找开发商。让他们解决!
[解决办法]
探讨

DLL是厂家提供的开发包,无源码。
谢谢各位,我按3楼的方法试试看能不能捕捉到点什么。

读书人网 >C#

热点推荐