NDK调试,无法设置断点

Posted

技术标签:

【中文标题】NDK调试,无法设置断点【英文标题】:NDK Debugging, can't set a breakpoint 【发布时间】:2013-07-14 10:39:23 【问题描述】:

用例

    Windows Phone 和 android 应用程序通用的 C++ 代码 Windows Phone 是使用 Visual Studio 编译的 Android 是使用 Eclipse @ Ubuntu/Linux 编译的 源代码存储在windows机器硬盘上 使用 SMB 共享与 Android/Linux 机器共享源代码

代码在两种环境下编译成功,但是在 Eclipse/Linux 上无法设置原生断点:msg="No source file named %Some name%",这一点,请记住:

    编译的二进制文件包含 CFLAGS,包括“-UNDEBUG -g -ggdb”、“NDK_DEBUG := 1” 'info sharedLibrary' 表示该库的符号已成功加载 “信息来源”生成指向 SMB 共享的有效文件路径列表

为什么会出现“没有命名的源文件”GDB 错误? 如何验证 GDB 是否可以访问源所在的 SMB 共享?

任何帮助将不胜感激

【问题讨论】:

[已解决] 与 Windows 相比,Linux FS 区分大小写,这意味着名为“JNI”的文件夹与名为“jni”的文件夹不同,它们可以在同一个目录。调试信息指向“jni”文件夹(而不是“JNI”),将我的“JNI”文件夹重命名为“jni”解决了问题,我现在可以调试本机代码! 【参考方案1】:

与 Windows 相比,Linux FS 区分大小写,这意味着名为“JNI”的文件夹与名为“jni”的文件夹不同,它们可以共存于同一目录下。调试信息指向“jni”文件夹(而不是“JNI”),将我的“JNI”文件夹重命名为“jni”解决了这个问题,我现在可以调试本机代码了!

【讨论】:

以上是关于NDK调试,无法设置断点的主要内容,如果未能解决你的问题,请参考以下文章

使用 Android Studio 调试 Android NDK

如何在 NDK 原生代码中获取断点并在 Android Studio 中调试原生代码?

NDK开发,如何配置 debug环境

android NDK开发在本地C/C++源码中设置断点单步调试具体教程

本机代码中的断点无法在 Android Studio 上命中 [重复]

如何在Android studio下调试ndk