windows - 显式崩溃应用程序的最简洁方法?

标签 windows crash debugbreak

我的应用程序具有内置的自定义崩溃处理功能(请参阅 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/

相关文章:

python - Jupyter Notebook 上 Python 和 Windows 的文件路径

c++ - 如何远程检索 Windows 配置文件目录路径?

c++ - 存储 wchar_t 并在显示时有时会更改一些字符

c++ - 如何安装 DebugBreak 处理程序?

windows - 使用 WinSCP get 命令下载两种类型的文件(*.bat 和 *.txt)

swift - SKEmitterNode 在场景重启时导致崩溃

iphone - 升级到 2.2.0 后 Phonegap 崩溃

Eclipse CDT 使 java 崩溃

c# - 如何在 C# 中使用 DebugBreak()?

unix - Unix/Linux 中的调试中断?