在 Qt Creator Android 项目中调试外部共享库

Debug external shared library in Qt Creator Android project

我有 Qt Quick Android 应用程序,它使用外部 C++ 库。

我使用 CMake 自己构建了这个库,CMAKE_BUILD_TYPE 设置为 Debug。当我在 Qt Creator 调试模式下启动应用程序时,我可以在 Qt 代码中的断点处停止,但它不会跳转到库调用,我只能看到汇编程序列表。

是否可以告诉调试器库源代码在哪里,甚至可以像这样在 Android 中进行调试?

好的,绝对有可能。

首先,请确保您确实拥有.so库中的所有调试信息:

<path-to-your-NDK>/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/arm-linux-androideabi/bin/objdump -S <your-lib-name>.so | less

您应该看到汇编程序和 C++ 代码的混合,这表明您的库包含调试符号。

之后确保 Qt Creator 能够在调试会话期间找到您的库。启动 "Debug",然后 Windows->Views->Debugger log 打开 gdb 控制台。执行:

show solib-search-path

查看 gdb 尝试查找库的目录的完整列表。如果还没有,请将路径添加到您的库中,例如:

set solib-search-path <old-value>:<path-to-your-library>

我知道这有点蹩脚,应该有一种方法可以使它自动化。但这对我有用。