V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
largek
V2EX  ›  macOS

如何在 mac 上 debug C/C++程序

  •  
  •   largek · 2017-03-16 22:09:30 +08:00 · 4998 次点击
    这是一个创建于 2793 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好像从 Sierra 还是 El Capitan 开始, GDB 在 mac 下就不能用了。
    请问大家都是用什么工具为 C/C++程序 debug 呢?
    17 条回复    2017-03-19 20:05:07 +08:00
    vansarw
        1
    vansarw  
       2017-03-16 22:11:21 +08:00
    lldb , xcode , clion 都可以
    taozhijiangscu
        2
    taozhijiangscu  
       2017-03-16 22:14:27 +08:00
    难道不是 xcode?
    lcdtyph
        3
    lcdtyph  
       2017-03-16 22:34:41 +08:00
    mac 可以用 brew 装个 gdb 然后自己签名啊
    llvm 家的 lldb 也很好用的
    random123
        4
    random123  
       2017-03-16 23:13:17 +08:00
    lldb 啊
    jmc891205
        5
    jmc891205  
       2017-03-16 23:19:12 +08:00 via iPhone
    lldb +1
    IgniteWhite
        6
    IgniteWhite  
       2017-03-16 23:45:27 +08:00
    brew 装 gdb 好像可以的。。。
    largek
        7
    largek  
    OP
       2017-03-16 23:52:41 +08:00
    @lcdtyph
    @IgniteWhite
    我 brew 装了之后,跑 gdb 之后会报如下错误:
    During startup program terminated with signal ?, Unknown signal.

    该怎么办呀?
    largek
        8
    largek  
    OP
       2017-03-16 23:54:31 +08:00
    @vansarw
    @lcdtyph
    @random123
    @jmc891205

    谢谢,我去试试 lldb 。
    largek
        9
    largek  
    OP
       2017-03-16 23:55:02 +08:00
    @taozhijiangscu
    xcdoe 。。有道理啊!我一直都是 gcc 。。
    sapjax
        10
    sapjax  
       2017-03-17 00:20:22 +08:00
    lcdtyph
        11
    lcdtyph  
       2017-03-17 08:09:40 +08:00
    @largek 要自签名才能用
    largek
        12
    largek  
    OP
       2017-03-17 09:31:05 +08:00
    @lcdtyph
    我按照如下链接中的方式签名了。 http://panks.me/posts/2013/11/install-gdb-on-os-x-mavericks-from-source/

    之后我可以运行 gdb ./myprogram 。但是当我 run 的时候会出现 During startup program terminated with signal ?, Unknown signal. 这个错误。
    请问你碰到过这个问题嘛?该怎么搞?
    largek
        13
    largek  
    OP
       2017-03-17 09:31:24 +08:00
    @sapjax
    微软大法好
    Abael
        14
    Abael  
       2017-03-17 19:45:03 +08:00 via Android
    如果程序最终跑在 Linux 服务器上,还是在 Linux 云服务 或装个同系统同软件环境的虚拟机 上 gdb 好。这样开发 /调试 /上线都容易。否则,一旦因环境不同导致复杂问题,追查起来自讨苦吃;
    Abael
        15
    Abael  
       2017-03-17 19:46:01 +08:00 via Android
    当然如果你程序本身就跑在 MAC 上,还是用 MAC 那一套
    largek
        16
    largek  
    OP
       2017-03-18 21:30:17 +08:00
    @Abael
    好的,明白了,多谢提醒~ 那我还需要安个虚拟机。
    其实我在做一个用 C 写的库,而这个库在 ios 和 linux 上都要用,所以你的建议对我很有帮助~
    zealinux
        17
    zealinux  
       2017-03-19 20:05:07 +08:00
    亲测可以用 `gdb`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2835 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:29 · PVG 19:29 · LAX 03:29 · JFK 06:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.