使用CodeBlocks调试共享C++库
Debug a shared C++ library with CodeBlocks
我有一个关于在Ubuntu中调试带有代码块的共享库的问题。当我使用共享库运行程序时,我没有问题。然而,主要的问题是,当我调试程序时,我无法进入共享库的源代码。提供了共享库的源代码,在构建程序之前,我首先构建共享库。我想在运行调试之前,我需要为程序的代码块项目设置一些参数,但我不知道应该在哪里进行设置。非常感谢。
编辑:
我的项目结构是这样的:
./program
将调用run_test.so
的正在运行的应用程序
run_test.so
将调用basic_library.so
的测试动态库
basic_library.so
由run_test.so
调用的库
当我调试./program
项目时,我可以进入run_test.so
的源代码,但当我想在run_test.so
的源代码中进入来自basic_library.so
的函数时,我遇到了问题。它只是忽略了进入命令的步骤。
经过仔细检查,我发现了无法调试共享库的原因,在CMAKE scrip中,我有以下代码:
set_target_properties(basic_library PROPERTIES LINK_FLAGS "-W1 --strip-all".
删除--strip之后,我现在可以调试了。
您需要使用调试符号构建共享库。这里有说明
本质上,Project build options | Produce debugging symbols
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 无法在Ubuntu上将共享库与Eclipse链接
- 从python调用openMP共享库时,未定义opnMP函数
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 为什么我的共享库中存在展开符号
- 使用共享指针的函数调用,其对象应为 const
- 具有两个独占锁组的共享锁
- 共享队列的线程安全
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 多个"常量引用"变量可以共享同一个内存吗?
- 如何访问由共享指针保存的类方法?
- 从矢量或地图中删除共享指针