GDB在mac上安装与运行

what gdb?

Gdb是一款代码调试工具。Mac下依旧支持,但是由于MacOS系统本身以及版本不协调等原因使用过程会遇到各种各样的问题。本文详细记录了从Gdb安装,钥匙串配置过程。

安装

方式1

brew install gdb

我的使用brew安装未成功,所以我使用了方式2编译安装

方式2

1.下载

下载地址
我下载的最新版 gdb-8.2.tar.gz

2.配置 编译 安装

# 配置
./configure
# 编译
make -j4
# 安装
make install

查看安装

# 查看gdb版本
gdb -v
src gdb -v
GNU gdb (GDB) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

配置调试权限

运行如下命令报错

(gdb) run
Starting program:
No executable file specified.
Use the "file" or "exec-file" command.

这是因为Darwin内核在你没有特殊权限的情况下,不允许调试其他进程。调试某个进程,意味着对这个进程有完全的控制权限。所以出于安全考虑默认是禁止的。所以允许gdb控制其它进程最好的方法就是用系统信任的证书对它进行签名。

创建证书

  1. command+空格键,输入钥匙串访问。
  2. 菜单上点击钥匙串访问->证书助理->创见证书
  3. 填写如下信息
    名称:gdb_codesign
    身份类型:自签名根证书
    证书类型:代码签名
  4. 勾选:让我覆盖这些默认设置

之后一直next,直到出现“指定证书位置”,选择系统,然后完成。
之后在左侧边栏上边选择“系统”,下边选择“我的证书”可以看到创建的证书,然后双击。展开“信任”这一项,选择 代码签名 “始终信任”。
关掉窗口,此时需要验证密码。
重启下系统,然后再执行:codesign -s gdb-cert $(which gdb)

使用

先编译一段代码

go build -gcflags "-N -l" test.go  //关闭内联优化,便于输出调试信息

载入go运行时环境

(gdb) source /usr/local/go/src/pkg/runtime/runtime-gdb.py

你可能感兴趣的:(GDB在mac上安装与运行)