1
waruqi 2017-04-03 00:45:06 +08:00
也可以考虑下使用 xmake 直接 xmake run -d test 自动编译运行 加载调试器 然后调试代码 http://xmake.io/cn
|
2
skydiver 2017-04-03 01:28:59 +08:00 via Android
cmake -DCMAKE_BUILD_TYPE=Debug 或者 RelWithDebInfo
|
3
MCVector 2017-04-03 02:26:06 +08:00 via Android
在你的 GCC flag 里加 -g
|
4
taozhijiangscu 2017-04-03 11:02:18 +08:00
也可以 CMakeLists.txt 中
set(CMAKE_BUILD_TYPE Debug) |
5
wwqgtxx 2017-04-03 12:03:17 +08:00 via iPhone 1
clion 默认的编译模式不就是 debug 么
|
6
pagict OP @skydiver @MCVector @taozhijiangscu @wwqgtxx
楼上各位所说的 是针对我的 test executable 的 debug 设置吧,可以 调试我的测试程序,但是无法调试进自己的库代码。如何设置进入库代码调试呢 |
7
taozhijiangscu 2017-04-03 21:27:20 +08:00
|
8
pagict OP 擦,原来这个坑空了快两个月了。这两个月实在各种杂事。自己来个阶段小结。
再进一步描述一下,是在 Clion 里的项目,结构形如 --- |--src1.cpp |--src2.cpp |--... |__test/ |-- test_me.cpp test 用了 gtest,想要调试的是一个在 header 中的 template 函数。 昨天在 clion 里把 debugger 由 lldb 改为 bundled gdb,可以调试进去了。猜想是 lldb 不支持 template 调试所致? 然而,今天进一步做实验,把这个猜想打破了,再次混沌。 今天索性全部 cmd 手工来编译,调试。把编译好的 mylib.so 和调试信息文件夹 mylib.so.dSYM 拷入 test 文件夹,-g 编译 test。用 lldb 调试,打断点 my_class::debug_this_template_func 可以顺利定位,run 起来也可以在这里停住。 反倒是用 gdb (先花了点时间做 codesign ),打断点 my_class::debug_this_template_func 就提示“ Make breakpoint pending on future shared library load?”,当然选 yes,run 起来却还是一跑而过,直接到了 segmentation fault 了。 所以呢,到底是不是由于调试器的原因呢,还得继续调查下去。虽然题主原本的问题是已经解决了。在这里先小结一下。 |