在Windows CE上发生崩溃

Catch a crash on Windows CE

本文关键字:崩溃 Windows CE      更新时间:2023-10-16

我想实现以下目标,但经过几天的试用,我仍然无法实现。我正在用C++为WindowsCE5.0开发一个应用程序,我希望能够在调用堆栈崩溃时(以编程方式)将其转储到文件中。我已经知道如何获取调用堆栈本身,问题是我不知道如何在发生崩溃时运行自己的代码。我试着把我的代码放在catch块中,但堆栈已经在那里展开了,所以运气不好。平台上提供了一些异常处理程序函数,但set_terminate()或set_unextpected()并不能捕获所有类型的异常。该应用程序是单线程的,使用Windows Mobile 5.0 SDK R2。

你试过SEH吗?

__try {
// stuff
} __except (DecideWhatToDo()) {
}
int DecideWhatToDo(void){
  // Stack analysis here, should work with EHsc and EHa
  //  you could return EXCEPTION_CONTINUE_EXECUTION here so stack should not be unwound
  return EXCEPTION_EXECUTE_HANDLER
}

事实上,我从来没有尝试过。你如何解释你的调用堆栈?所以找到虫子是有用的吗?