我的应用程序定制崩溃处理内置(见约翰罗宾斯关于‘调试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下的应用程序

有帮助吗?

解决方案

只要创建一个空指针与一些成员函数的对象它们的尝试,呼叫一个?也许做一个功能,让你知道什么daoes

void CrashApp()
{
    MyObject * ptr = 0;
    ptr->Function();
}

当然最简单的方法,并很清楚怎么回事

其他提示

可以使用 __debugbreak()内部代替的DebugBreak()功能。这还不说什么,崩溃,并EXCEPTION_BREAKPOINT

的RaiseException()是又一的方式来碰撞。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top