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 中调试原生代码?
android NDK开发在本地C/C++源码中设置断点单步调试具体教程