美文网首页
Mac环境配置gdb,调试golang程序

Mac环境配置gdb,调试golang程序

作者: 随水而生_cb06 | 来源:发表于2019-08-29 16:48 被阅读0次

    GDB:The GNU Project Debugger

    GDB是GNU中的项目调试工具,主要运用在UNIX及UNIX-like环境。

    功能:可以调试、定位问题到代码行

    备注:由于macOS系统本身和UNIX系统有区别,且本质上并不支持gdb,故安装过程会遇到各种问题


    1、如何安装:

    1)我直接brew install gdb会失败,错误信息忘记保存了

    2)选用下载安装包方式

    下载链接:ftp://sourceware.org/pub/gdb/releases/

    选择其中一个版本下载

    3)下载后,解压,并进入下载目录

    配置:./configure

    编译:make -j4

    安装:make install

    4)安装成功,执行gdb -v,可以看到gdb版本

     gdb -v

    GNU gdb (GDB) 8.3

    Copyright (C) 2019 Free Software Foundation, Inc.

    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

    This is free software: you are free to change and redistribute it.

    There is NO WARRANTY, to the extent permitted by law.


    2、安装证书

    1)在application里找到钥匙串访问:

    2)选择钥匙串访问-》证书助理-》创建证书

    3)按如下操作:证书名为:gdb_codesign

    4)一直继续直到完成,完成后,会看到证书,选中右键,选择显示简介:

    点开其中的信任:

    设置下面两个选项

    使用此证书:选择使用系统默认

    代码签名:选择始终信任

    5)打开终端,验证证书

    需要重启系统,然后在终端执行:codesign -s  gdb_codesign $(which gdb)

    问题:如果证书设置错误,但是又已经验证了,使用过程有问题怎么办?

    可以重新编译安装gdb,重新去gdb的安装目录执行 编译:make -j4   安装:make install

    然后再重新验证证书即可


    3、gdb调试

    1)mac中使用gdb需要root权限,所以需要sudo gdb 可执行文件,但是每次都得输入密码

    可以设置mac中使用root不输入密码:

    Mac/Ubuntu/Linux 配置sudo免密码:

    a.打开命令窗口输入如下命令:

    1sudo visudo 或者 sudo vi /etc/sudoers

    b.注释 #%admin ALL=(ALL) ALL ,改为 %admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

    2)开始调试 sudo gdb  可执行文件

    打断点方式:

    代码行:b service-customer-list/services/rules/do.go:776

    函数:b service-customer-list/services/rules/do.go:函数名

    打断点后可以按c让程序运行起来,直到遇到第一个断点

    调试节奏:

    单步调试:运行到下一行,用next或n

    断点调试:运行到下个断点用 continue或c

    直接运行完,则用run或r

    在断点处:

    如果要查看当前代码:则可以用list

    查看当前局部变量:info locals

    打印某个变量:print 变量名

    3)使用过程中问题

    如果开启gdb,用ctrl+z退出后其实进程还在,需要杀死,否则重新gdb run的时候会失败

    杀死所有名称为gdb的进程命令:kill -9 $(ps -ef|grep gdb |awk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')

    相关文章

      网友评论

          本文标题:Mac环境配置gdb,调试golang程序

          本文链接:https://www.haomeiwen.com/subject/sugiectx.html