【发布时间】:2015-06-01 18:01:23
【问题描述】:
我有一些使用 NDK 的 C++ 代码。当 C++ 代码(在设备上;而不是通过模拟器)发生崩溃时,我会得到一个墓碑(崩溃转储),其中包含一个始终为 2 级深的调用堆栈:
I/DEBUG ( 5089): pid: 5048, tid: 5062 >>> com.example.site <<<
I/DEBUG ( 5089): #00 pc 0059e08c /data/data/com.example.site/lib/libexample.so (_ZNK10MyNamespaceAPI11MyClass12GetDataEv)
I/DEBUG ( 5089): #01 lr 5bc9ef2c /data/data/com.example.site/lib/libexample.so
I/DEBUG ( 5089): 5cc6e764 5bce3070 /data/data/com.example.site/lib/libexample.so
I/DEBUG ( 5089): 5cc6e774 5bce309c /data/data/com.example.site/lib/libexample.so
I/DEBUG ( 5089): 5cc6e784 5bce2af4 /data/data/com.example.site/lib/libexample.so
I/DEBUG ( 5089): 5cc6e788 5c27ea9c /data/data/com.example.site/lib/libexample.so
有没有办法配置我的应用或 Android 以在打印到故障转储的调用堆栈中提供更多细节和深度?究竟是什么决定了这一点?我见过一些示例,其中人们获得了高达 15 级的调用堆栈深度。
【问题讨论】:
-
另一个问题是关于原始堆栈转储,而不是回溯。
标签: android c++ android-ndk crash crash-dumps