【发布时间】:2021-11-19 04:13:51
【问题描述】:
我在 Visual Studio 2019 中有一个 NDK 项目,它使用了多个共享库。
在包含 android_main 函数的项目中,我可以设置断点并毫无问题地使用它们。如果我在我的一个共享库 (.so) 中设置断点并启动调试器,我会收到以下消息:
当前不会命中断点。包含此断点的模块尚未加载或无法获取断点地址。
如何加载缺失的符号?
我正在使用平台工具集 Clang 5.0
到目前为止我尝试了什么:
通过这个命令我证明了符号是存在的:
llvm-nm -D libMySharedLib.so
在模块窗口中(在调试模式下)我可以看到为我的 .so 模块加载了符号。
我猜错了:
使用 NDK 时,通常会在删除调试信息时出现此类问题。还有一个选项可以禁用此行为,在 Android Studio 中称为“donotstrip”。但我在 Visual Studio 上。
【问题讨论】:
-
也许您可以查看以下文档:Load symbols 和 Specify symbol (.pdb) and source files。
-
好的。现在通过模块窗口,我可以看到为我的 .so 库加载了符号。但是断点还是没有命中。
标签: visual-studio android-ndk shared-libraries breakpoints debug-symbols