我的应用程序具有内置的自定义崩溃处理功能(请参阅 John Robbins 关于“调试 Windows 应用程序”的优秀书籍)。为了测试这个功能,我总是使用 Windows 函数 DebugBreak() 并且它总是工作得很好。但从 Windows 7 开始,调用此函数只会提示“已到达断点”并停止应用程序,而无需调用我的崩溃处理程序。
我总是可以将此代码放入我的应用程序中以测试崩溃功能:
int *ptr = (int *)0xdeadbeef;
*ptr = 123456789;
或者甚至添加几个案例,以防万一 0xdeadbeef 是一个有效地址:
int *ptr = (int *)0xdeadbeef;
*ptr = 123456789;
ptr = (int *)0L;
*ptr = 123456789;
ptr = (int *)0xffffffff;
*ptr = 123456789;
但我想知道:是否有更简洁的方法让您的应用程序在 Windows 下崩溃?
最佳答案
只是创建一个空指针指向一个带有一些成员函数的对象并尝试调用其中一个?也许在一个函数中做它,这样你就知道它是做什么的
void CrashApp()
{
MyObject * ptr = 0;
ptr->Function();
}
绝对是最简单的方法并且非常清楚发生了什么
关于windows - 显式崩溃应用程序的最简洁方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626139/