【发布时间】:2019-08-24 21:59:06
【问题描述】:
我正在一个带有 android 的 Linux 系统中运行一个多线程 C++ 程序。由于 SIGSEGV 11(分段错误),我遇到了崩溃。生成的回溯显示 .so 文件,后跟带有一些地址的堆。
如何检查分段错误发生的确切位置?如何调试回溯打印的地址?
【问题讨论】:
-
是核心生成的吗?你能在调试器/valgrind下运行吗?
我正在一个带有 android 的 Linux 系统中运行一个多线程 C++ 程序。由于 SIGSEGV 11(分段错误),我遇到了崩溃。生成的回溯显示 .so 文件,后跟带有一些地址的堆。
如何检查分段错误发生的确切位置?如何调试回溯打印的地址?
【问题讨论】:
使用adb logcat 获取日志。那里的额外信息(调用堆栈、注册表)应该可以帮助您识别问题。
要翻译源代码行中的地址,请使用 NDK 中提供的addr2line
【讨论】: