让我们说我故意放了类似的东西;我的代码中*((int*)0xffffffff) = 1;
。当执行上面的代码行时,如何防止我的应用程序崩溃(触发断点)?
我尝试用" catch-all-exceptions"来处理这种情况。声明; catch(...) {/*Do something*/}
,只是为了看看这是否可以解决我的问题。正如所料,它没有捕获任何异常,我的应用程序崩溃了。
此行(*((int*)0xffffffff) = 1;
)是否会导致我的操作系统崩溃?
执行这行代码时我能期待什么?
我可以采取什么方法来故意触发断点?
我正在异构环境(经典C和C ++)中研究异构系统(CPU和GPU)。
正如人们所料,我正在努力创造一个统一的"错误控制系统。
在我的应用程序的某一点,抛出异常是一个不受支持的功能(经典的C代码),我想触发一个断点(只是为了报告错误)。然后"赶上"那"错误" (在C ++代码块中),处理它,并恢复"正常"程序执行。
创建枚举类型以存储错误代码,然后从函数返回足够的错误代码,不是一种选择。
操作系统:Windows 8.1 x64
IDE: visual studio 2015更新3.
断点将被抛出"来自:经典C代码。
断点将被捕获" in: C ++代码。