Teg*_*gan 6 c++ debugging java-native-interface android debug-symbols
我正在尝试调试从简单 android 应用程序中的 Java 代码 (MainActivity.OnCreate) 调用的本机 (c++) 代码的问题。我正在使用lldb进行调试并使用cmake构建本机代码。
调试按预期工作,直到我尝试进入本地语言函数,然后发生以下情况之一:
1. 调试器进入函数并允许执行进一步的步骤,但没有光标,没有正常的堆栈跟踪,也没有变量监视. 堆栈跟踪中唯一的内容是 cpp 文件的名称和内存地址(可能是指令指针?),随着我采取的每一步而增加。在我看来,没有加载调试符号。
2. 该步骤按预期成功,在短时间内我可以瞥见正确的堆栈跟踪。但是随后 lldb 崩溃,堆栈发生变化并且光标位于art_sigsegv_fault. 当我继续时,我只是收到一条消息,指出调试器已断开连接。该应用程序将继续按原样运行。
此外,我注意到在崩溃的那一刻,调试器试图从变量中收集数据,但实际上从未成功。成功解析的变量是JNI 指针和jobject,而其他变量是jstring。
崩溃前的几毫秒:

崩溃后:

我试过的
packagingOptions{
doNotStrip "**/*.so"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |