使用QtCreator在C++中调试动态加载库

2022-04-05 00:00:00 dll qt-creator c++ dynamic-library

我正在构建一个在Linux上使用qtcreator动态加载共享库插件的应用程序。

插件构建在一个单独的文件夹中,然后复制到主应用程序插件文件夹中。应用程序在启动时查找并加载插件。

插件和可执行文件都构建在单独的CMake项目中(在调试配置中),这些项目加载到我的qtcreator会话中。

调试器似乎无法将库与源代码文件链接。这有两个影响 *我放在插件文件上的断点被忽略 *如果我在插件代码中放置"代码断点"(即asm int 3),调试器会向我显示错误(而不是源代码)。

如何告诉调试器查找正确的源文件?


解决方案

您可以根据函数名等在库中设置断点。要查看断点的源代码,必须使用调试符号(如qmake CONFIG+=DEBUG)对库进行编译,编译后不能移动源代码。我认为破解文件和行号也需要消息来源。 如果您仍然遇到问题,我会尝试将源目录添加到INCLUDEPATH,或者在运行时在QtCreator中加载这两个项目。

相关文章