Debugging a dynamically-loaded library in c++ with QtCreator(使用QtCreator在C++中调试动态加载库)
问题描述
我正在构建一个在Linux上使用qtcreator动态加载共享库插件的应用程序。 插件构建在一个单独的文件夹中,然后复制到主应用程序插件文件夹中。应用程序在启动时查找并加载插件。
插件和可执行文件都构建在单独的CMake项目中(在调试配置中),这些项目加载到我的qtcreator会话中。
调试器似乎无法将库与源代码文件链接。这有两个影响
*我放在插件文件上的断点被忽略
*如果我在插件代码中放置"代码断点"(即asm int 3
),调试器会向我显示错误(而不是源代码)。
如何告诉调试器查找正确的源文件?
推荐答案
您可以根据函数名等在库中设置断点。要查看断点的源代码,必须使用调试符号(如qmake CONFIG+=DEBUG)对库进行编译,编译后不能移动源代码。我认为破解文件和行号也需要消息来源。 如果您仍然遇到问题,我会尝试将源目录添加到INCLUDEPATH,或者在运行时在QtCreator中加载这两个项目。
这篇关于使用QtCreator在C++中调试动态加载库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用QtCreator在C++中调试动态加载库
基础教程推荐
- C++,'if' 表达式中的变量声明 2021-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01