无法进入原生代码 - Android

时间:2016-11-26 05:58:20

标签: android-ndk openssl java-native-interface android-studio-2.2

我一直在尝试在Android工作室上调试本机代码。 我的调试器在简单的hello world jni代码上运行良好。 但是,当我尝试使用与共享库libcrypto.so和libccmssl.so链接的代码执行相同操作时,我无法进入本机代码。

现在我不确定上述观察结果是否重要。但我不知道接下来要去哪里探索。在加载库时,我正在关注(附加图像)SIGILL,之后,在按下继续时,代码运行,调用本机函数并返回值,但调试器不会进入本机代码。

enter image description here

我应该感谢任何指示,谢谢你,

1 个答案:

答案 0 :(得分:1)

我一直试图让android studio的外部c ++项目工作一周,并试图缩小原因 - > “为什么我无法进入原生代码”

对我来说,问题是LOCAL_CPPFLAGS中存在“-gstabs +”标志 我删除了它 - >构建 - >和耶?

以下是标志说明: https://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Debugging-Options.html

-gstabs + 使用只有GNU调试器(GDB)理解的GNU扩展,以stabs格式生成调试信息(如果支持)。 使用这些扩展程序可能会使其他调试程序崩溃或拒绝阅读该程序。

注意:我在问题中发布的上述SIGILL图像仍然存在,但这并不是导致调试器不执行它的原因。