使用 QtCreator 在 c++ 中调试动态加载的库
Debugging a dynamically-loaded library in c++ with QtCreator
我正在构建一个应用程序,该应用程序在Linux上使用qtcreator动态加载共享库插件。
该插件构建在一个单独的文件夹中,然后复制到主应用程序插件文件夹中。应用程序在启动时查找插件并加载它们。
插件和可执行文件都构建在单独的 CMake 项目中(在调试配置中),这些项目在我的 qtcreator 会话中加载。
调试器似乎无法将库与源代码文件链接。这有两个效果* 我放在插件文件上的断点被忽略* 如果我放一个"代码断点"(即 asm int 3
)在插件代码中,调试器向我显示disasembly(而不是源代码)。
如何告诉调试器查找正确的源文件?
您可以根据函数名称等在库中设置断点。 要查看断点的源代码,必须使用调试符号(例如 qmake CONFIG+=debug)编译库,并且源代码在编译后不能移动。 我相信打破文件和行号也需要来源。如果您仍然遇到问题,我会尝试将源目录添加到 INCLUDEPATH,或在运行时在 QtCreator 中加载这两个项目。
相关文章:
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 在 Linux 平台的 C++ 中动态加载 DLL
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- 从动态加载的 dll 内部调用C++函数
- C/C++函数动态加载器(helper)
- 从动态加载的库中记录日志
- 如何将LLDB附加到C# .NET进程并调试动态加载的macOS捆绑包?
- 如何动态加载和调用具有特定于库的类型作为函数参数的符号
- OpenGL 中的动态加载着色器毫无意义吗?
- 使用动态加载库时静态变量为空
- 在动态加载的位置无关的可执行文件中分离错误
- ASAN 检测与动态加载库共享的类的 vtable 的 ODR 违规
- 运行时动态加载库时出错"unresolved external symbol"
- 使用dlopen动态加载共享库
- LDD可执行OUPUT中没有动态加载库
- 调试Android Studio中动态加载的本机库
- C++ 动态加载 DLL 错误
- 动态加载库和运行时误解的显式链接
- 通过在C 中动态加载的LIB分配的基础级指针上调用删除的安全性
- mbed uvisor 动态加载二进制文件