我想测试我的应用程序崩溃转储是否可以调试。但是首先,我需要生成我的应用程序的崩溃转储。我正在使用C#对我的应用程序进行编码,并且尝试了很多例外和不安全的代码等等,但是没有得到它。
谢谢!
编辑:对不起,我忘了一些东西,我正在用Unity3D制作应用程序,它会自动为我处理异常。
编辑2:感谢大家的回答。我已经在一个标准的C#应用程序中测试了您的建议,这一切都很好,但在我的Unity3D应用程序(用C#编写)中却不是这样。似乎Unity3D需要更多的努力才能导致崩溃,我可能会给Unity3D发电子邮件以得到答案。如果我拿到的话我会在这里发邮件。干杯!
发布于 2016-08-22 22:12:49
井。真正有效的100%崩溃CLR的唯一方法是将本机异常注入托管世界。
直接调用Kernel32.dll的RaiseException()将立即使任何C#应用程序崩溃,同时还会导致Unity崩溃。
[DllImport("kernel32.dll")]
static extern void RaiseException(uint dwExceptionCode, uint dwExceptionFlags, uint nNumberOfArguments, IntPtr lpArguments);
void start()
{
RaiseException(13, 0, 0, new IntPtr(1));
}愉快的崩溃。请注意,为了调试本机和托管的,需要运行两个Visual实例。如果您正在开发本机P/INVOKE插件,请将Visual实例1设置为本机调试器,并将统一程序或C#程序用作宿主程序,并从另一个Visual实例附加到主机程序。
https://stackoverflow.com/questions/17996738
复制相似问题