如何设置为 debug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
pagict
V2EX    C

如何设置为 debug

  •  
  •   pagict Apr 3, 2017 3386 views
    This topic created in 3314 days ago, the information mentioned may be changed or developed.
    在尝试写一个 cpp 的库,生成一个 library ,用 cmake 管理项目,该如何设置,可以在 project 里面的 test 中 debug 进库的代码? Clion !!
    8 replies    2017-05-22 23:48:58 +08:00
    waruqi
        1
    waruqi  
       Apr 3, 2017
    也可以考虑下使用 xmake 直接 xmake run -d test 自动编译运行 加载调试器 然后调试代码 http://xmake.io/cn
    skydiver
        2
    skydiver  
       Apr 3, 2017 via Android
    cmake -DCMAKE_BUILD_TYPE=Debug 或者 RelWithDebInfo
    MCVector
        3
    MCVector  
       Apr 3, 2017 via Android
    在你的 GCC flag 里加 -g
    taozhijiangscu
        4
    taozhijiangscu  
       Apr 3, 2017
    也可以 CMakeLists.txt 中

    set(CMAKE_BUILD_TYPE Debug)
    wwqgtxx
        5
    wwqgtxx  
       Apr 3, 2017 via iPhone   1
    clion 默认的编译模式不就是 debug 么
    pagict
        6
    pagict  
    OP
       Apr 3, 2017 via iPhone
    @skydiver @MCVector @taozhijiangscu @wwqgtxx
    楼上各位所说的 是针对我的 test executable 的 debug 设置吧,可以 调试我的测试程序,但是无法调试进自己的库代码。如何设置进入库代码调试呢
    taozhijiangscu
        7
    taozhijiangscu  
       Apr 3, 2017
    @pagict

    那得看你的库本身有没有调试符号了啊
    pagict
        8
    pagict  
    OP
       May 22, 2017
    擦,原来这个坑空了快两个月了。这两个月实在各种杂事。自己来个阶段小结。

    再进一步描述一下,是在 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 了。

    所以呢,到底是不是由于调试器的原因呢,还得继续调查下去。虽然题主原本的问题是已经解决了。在这里先小结一下。
    About     Help     Advertise     Blog     API     FAQ     Solana     2425 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 15:47 PVG 23:47 LAX 08:47 JFK 11:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86