Symbian:在设备上运行时如何在恐慌时获得堆栈跟踪?

时间:2010-09-08 08:28:47

标签: symbian stack-trace panic

有人可以给我一个关于如何在Symbian中获取堆栈跟踪的提示。我正在经历KERN-EXEC 0恐慌,但找不到它的起源。我已经看到了其他有关这方面的问题,比如this,但是只有关于如何在模拟器上解决这个问题的描述。但我的程序涉及Wi-Fi,必须在设备上运行。也许有一些方法可以让堆栈在恐慌中被追踪或突破?

3 个答案:

答案 0 :(得分:1)

KERN-EXEC 0表示您使用的是坏句柄,因此请检查所有RClasses。

您无法在生产设备上调试系统崩溃。如果您可以为您的设备构建自定义ROM,那么您可以包含内核扩展“exmondebug.dll”和“exmoncommon.dll”,现在当设备崩溃时,它将使您进入调试监视器。从这里你可以输入密码“replacement”dump out all the system stacks ..(输入info for info)。

如果您无法访问开发人员硬件,您可以使用Syborg baseport在QEMU上运行自定义Symbian ^ 2和Symbian ^ 3 ROM映像,我认为它不支持wifi但有一个以太网驱动程序。

答案 1 :(得分:1)

我遇到了同样的问题,操作系统没有给你任何帮助。

我做了什么,它解决了我的问题并且实际上有很多帮助,它提出了你自己的手动堆栈跟踪实现。查看我的版本here的部分内容(恰好是您链接到的相同问题)。

我的回答有很多优点和缺点。

  • Pro - 您可以获得良好的堆栈跟踪,这有助于调试。
  • Con - 许多实施和维护的手工工作。
  • Con - 可能会导致性能下降(我设置了它,因此它只会针对调试版本进行编译)。

答案 2 :(得分:0)

你的日志不提示吗? 在它崩溃的地方添加更多日志或注释掉一些块以查看崩溃是否发生在它们中。