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

快被搞奔溃了! Mac Mojave(10.14)上配好 GDB 怎么就这么难?

  •  
  •   dongqihong · 2019-01-05 11:23:19 +08:00 · 6041 次点击
    这是一个创建于 2159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时在服务器开发,习惯了 GCC 跟 GDB,偶尔需要在本地编译点东西,这坑爹的 mac,自从 10.13 开始就让我一直折腾,GDB 从来没好用过!

    我是通过 brew install gdb 安装的 gdb8.2,已经按照安装说明 https://sourceware.org/gdb/wiki/PermissionsDarwin 做好了代码签名,所有验证都可以通过,可是用 gdb 调试的时候,一按 run,整个进程就会卡住,快要疯了!

    有哪位大佬在 Mojave 上成功用 gdb8.2 调试过吗?

    看了下日志: 日志截图

    2019-01-05 11:01:11.574946+0800 0x28ce     Activity    0x5ce5               1468   0    taskgated: (Security) SecTrustEvaluateIfNecessary
    2019-01-05 11:01:11.584392+0800 0x28ce     Activity    0x5ce6               1468   0    taskgated: (Security) SecTrustEvaluateIfNecessary
    2019-01-05 03:01:11.615804+0000 0x2908     Default     0x0                  0      0    kernel: (AppleMobileFileIntegrity) macOSTaskPolicy: (gdb) (pid: 1465) not (yet) allowed to go invalid
    2019-01-05 11:01:11.617553+0800 0x28d0     Default     0x0                  1468   0    taskgated: (Security) [com.apple.securityd:security_exception] MacOS error: -67062
    2019-01-05 11:03:30.347482+0800 0x28ce     Activity    0x5ce7               1468   0    taskgated: (Security) SecTrustEvaluateIfNecessary
    2019-01-05 11:03:30.353959+0800 0x28ce     Activity    0x5ce8               1468   0    taskgated: (Security) SecTrustEvaluateIfNecessary
    2019-01-05 03:03:30.386099+0000 0x2eba     Default     0x0                  0      0    kernel: (AppleMobileFileIntegrity) macOSTaskPolicy: (gdb) (pid: 1741) not (yet) allowed to go invalid
    
    第 1 条附言  ·  2019-01-05 13:08:34 +08:00
    放弃挣扎了,用 lldb 了,不想再把时间浪费在这种事情
    22 条回复    2019-10-27 18:13:25 +08:00
    dongqihong
        1
    dongqihong  
    OP
       2019-01-05 11:31:50 +08:00
    准备使用 `lldb` 了,苹果还是疼亲儿子啊
    mephistophilis
        2
    mephistophilis  
       2019-01-05 11:33:01 +08:00
    lldb 哪里不好。
    dongqihong
        3
    dongqihong  
    OP
       2019-01-05 11:36:59 +08:00
    @mephistophilis 没说不好,习惯问题,另外 vim 的 Termdebug 目前只支持 gdb
    Nitroethane
        4
    Nitroethane  
       2019-01-05 11:37:21 +08:00 via Android
    @dongqihong 跟苹果疼不疼亲儿子有什么关系,gcc 又不是苹果开发的
    dongqihong
        5
    dongqihong  
    OP
       2019-01-05 11:40:43 +08:00
    @Nitroethane 苹果一直都是对 clang 跟 lldb 优先支持啊
    neoblackcap
        6
    neoblackcap  
       2019-01-05 11:41:03 +08:00 via iPhone
    @Nitroethane 但是 llvm 家的东西是苹果投钱开发的,你看看 xcode 现在的编译工具是啥就知道。自家的东西优先兼容自家的东西,很正常吧
    lcdtyph
        7
    lcdtyph  
       2019-01-05 11:56:14 +08:00 via iPhone   ❤️ 1
    你链接里的教程太旧了吧,试试这个
    https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d
    richangfan
        8
    richangfan  
       2019-01-05 11:59:13 +08:00 via Android   ❤️ 1
    mACos 怎么会难用?世界第一的操作系统,比 Linux 适合编程,比 Windows 适合办公。
    echo1937
        9
    echo1937  
       2019-01-05 12:02:36 +08:00 via iPhone
    怎么说呢,除非是 gcc only,否则在 MacOS 上面,没道理不使用 clang/lldb。
    dongqihong
        10
    dongqihong  
    OP
       2019-01-05 12:12:26 +08:00
    @richangfan 哈哈哈,Mac 用了 10 年,也算老用户了,不过服务端编程来说,个人更喜欢 Linux 一些
    kljsandjb
        11
    kljsandjb  
       2019-01-05 12:17:20 +08:00 via iPhone
    为啥不用 LLDB
    dongqihong
        12
    dongqihong  
    OP
       2019-01-05 13:07:48 +08:00
    @lcdtyph 试过了,还是一样的问题
    imnpc
        13
    imnpc  
       2019-01-05 13:16:03 +08:00
    GCC 只建议 Linux 下 我记得 mac 下面有什么问题来着 我以前尝试反编译一个脚本发现的。。。
    springz
        14
    springz  
       2019-01-05 15:41:39 +08:00
    要把 SIP 关掉,升到 10.14 我也没搞定。在 macOS 上 放弃 gdb 了,改用 lldb,命令都差不多。
    ipwx
        15
    ipwx  
       2019-01-05 15:51:48 +08:00
    然而你在 win 下面用 gdb 也要折腾半天的吧?
    lovestudykid
        16
    lovestudykid  
       2019-01-15 23:32:01 +08:00
    @ipwx win 下安装 mingw 开箱即用

    不用 lldb 还有一个理由,clang 只是 C language family,而 gcc 是 GNU Compiler Collection,没得选
    lovestudykid
        17
    lovestudykid  
       2019-01-15 23:33:40 +08:00
    @lcdtyph 你这个是过时的,楼主贴的是最新能找到的,加了一个 xml,否则 codesign 这一关都过不去
    codecrash
        18
    codecrash  
       2019-03-13 18:33:15 +08:00
    brew install gdb --HEAD

    GNU gdb (GDB) 8.3.50.20190313-git

    似乎是可以的,虽然还是会有报错
    shelvon
        19
    shelvon  
       2019-06-20 00:35:01 +08:00
    遇到了同样的问题,10.14 mojave 下通过 macport 安装过 gdb 8.2 和 8.3 两个版本,都不能用。想用 lldb,只可惜 lldb 不兼容 eclipse,Fortran 程序调试更是不好用。现在感觉 mac 真的是鸡肋。
    HongboQin
        20
    HongboQin  
       2019-10-21 00:45:49 +08:00
    macOS Catalina 最新版本,刚刚解决了这个问题。

    每次运行 gdb 的时候,前面加上 sudo 就行了,如 `sudo gdb file_name`
    Abirdcfly
        21
    Abirdcfly  
       2019-10-26 19:00:28 +08:00
    @lcdtyph #7 的链接里是最全的。我第二次才发现的。。。注意看评论。10.14 后需要加一个 xml 文件。否则还是有问题。10.15 8.3 搞定。。。
    Abirdcfly
        22
    Abirdcfly  
       2019-10-27 18:13:25 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:29 · PVG 05:29 · LAX 13:29 · JFK 16:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.