mac下配置gdb调试golang

ziyouchutuwenwu · 2014-10-04 19:26:00 · 8442 次点击 · 预计阅读时间不到 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2014-10-04 19:26:00 的文章,其中的信息可能已经有所发展或是发生改变。

xcode自带的gdb是6,golang需要的gdb是7,因此,homebrew之

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb

 

添加证书

钥匙串访问,证书助理,选第二个,证书助理,创建证书,名字为gdb-cert,勾选覆盖默认值,有效期可以改的长一点,一步步下去,注意一定要选择代码签名,安装一定要到系统里面。

 

配置证书,全部改成信任模式,和goagent的配置方式一样

 

签名

codesign -s gdb-cert /usr/local/Cellar/gdb/7.7/bin/gdb

 

liteide里面配置gdb为新的路径即可

 

调试的时候提示输入密码,貌似输入一次以后,只要不重启,永久有效,不错


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:ziyouchutuwenwu

查看原文:mac下配置gdb调试golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

8442 次点击  ∙  1 赞  
加入收藏 微博
6 回复  |  直到 2018-05-09 20:54:10
chaoszhuo
chaoszhuo · #1 · 10年之前

"liteide里面配置gdb为新的路径即可" -- 这是神马意思?

yuqiandoudou
yuqiandoudou · #2 · 7年之前

运行不了

freechinaren
freechinaren · #3 · 7年之前

=thread-group-added,id="i1" ~"GNU gdb (GDB) 8.1\n" ~"Copyright (C) 2018 Free Software Foundation, Inc.\n" ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\nand \"show warranty\" for details.\n" ~"This GDB was configured as \"x86_64-apple-darwin17.3.0\".\nType \"show configuration\" for configuration details." ~"\nFor bug reporting instructions, please see:\n" ~"<http://www.gnu.org/software/gdb/bugs/>.\n&#34; ~"Find the GDB manual and other documentation resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n&#34; ~"For help, type \"help\".\n" ~"Type \"apropos word\" to search for commands related to \"word\"...\n" ~"Reading symbols from /Users/duanguanjun/work/gospace/src/awesomeProject/src/src.debug..."

10000010-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23>>> 10000011-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17>>> 10000012-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23>>> 10000013-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17~"done.\n" &"Loading Go Runtime support.\n" (gdb) &"set unwindonsignal on\n" =cmd-param-changed,param="unwindonsignal",value="on" 10000001^done (gdb) &"set overload-resolution off\n" =cmd-param-changed,param="overload-resolution",value="off" 10000002^done (gdb) &"handle SIGSEGV nopass stop print\n" ~"Signal Stop\tPrint\tPass to program\tDescription\n" ~"SIGSEGV Yes\tYes\tNo\t\tSegmentation fault\n" 10000003^done (gdb) &"set breakpoint pending on\n" =cmd-param-changed,param="breakpoint pending",value="on" 10000004^done (gdb) &"set width 0\n" =cmd-param-changed,param="width",value="4294967295" 10000005^done (gdb) &"set height 0\n" 10000006^done (gdb) &"set auto-solib-add on\n" 10000007^done (gdb) &"Warning: /usr/local/go/src/pkg/runtime: No such file or directory.\n" 10000008^done,source-path="/usr/local/go/src/pkg/runtime:$cdir:$cwd" (gdb) &"set substitute-path /go/src/pkg/runtime /usr/local/go/src/pkg/runtime\n" 10000009^done (gdb) 10000010^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0f44",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="23",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23"} (gdb) 10000011^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0b54",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="17",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17"} (gdb) 10000012^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0f44",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="23",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23"} (gdb) 10000013^done,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0b54",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="17",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17"} (gdb) 10000014^done,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0aa0",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="15",thread-groups=["i1"],times="0",original-location="main.main"} (gdb) =thread-group-started,id="i1",pid="1720" =thread-created,id="1",group-id="i1" ~"[New Thread 0xb03 of process 1720]\n" =thread-exited,id="1",group-id="i1" =thread-created,id="2",group-id="i1" ~"[New Thread 0xe03 of process 1720]\n" =thread-exited,id="2",group-id="i1" =thread-created,id="3",group-id="i1" ~"[New Thread 0x1503 of process 1720]\n" 10000015^error,msg="Warning:\nCannot insert breakpoint -1.\nCannot access memory at address 0xf782\n" (gdb)

freechinaren
freechinaren · #4 · 7年之前

请问上面这个“Warning:\nCannot insert breakpoint -1.\nCannot access memory at address 0xf782\n" (gdb)“怎样解决

freechinaren
freechinaren · #5 · 7年之前

重新安安装gdb brew reinstall gdb

根据提示添加~/.gdbinit文件 echo "set startup-with-shell off" >> ~/.gdbinit

然后签名 codesig -s gdb-cert /usr/local/bin/gdb

再通过liteide 选择gdb调试还是会报错,信息提示如下: =thread-group-added,id="i1" ~"GNU gdb (GDB) 8.1\n" ~"Copyright (C) 2018 Free Software Foundation, Inc.\n" ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type \"show copying\"\nand \"show warranty\" for details.\n" ~"This GDB was configured as \"x86_64-apple-darwin17.3.0\".\nType \"show configuration\" for configuration details." ~"\nFor bug reporting instructions, please see:\n" ~"<http://www.gnu.org/software/gdb/bugs/>.\n&#34; ~"Find the GDB manual and other documentation resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n&#34; ~"For help, type \"help\".\n" ~"Type \"apropos word\" to search for commands related to \"word\"...\n" =cmd-param-changed,param="startup-with-shell",value="off" ~"Reading symbols from /Users/duanguanjun/work/gospace/src/awesomeProject/src/src.debug..."

10000010-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23>>> 10000011-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17>>> 10000012-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16>>> 10000013-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23>>> 10000014-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17>>> 10000015-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16>>> 10000016-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23>>> 10000017-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17>>> 10000018-break-insert /Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16~"done.\n" &"Loading Go Runtime support.\n" (gdb) &"set unwindonsignal on\n" =cmd-param-changed,param="unwindonsignal",value="on" 10000001^done (gdb) &"set overload-resolution off\n" =cmd-param-changed,param="overload-resolution",value="off" 10000002^done (gdb) &"handle SIGSEGV nopass stop print\n" ~"Signal Stop\tPrint\tPass to program\tDescription\n" ~"SIGSEGV Yes\tYes\tNo\t\tSegmentation fault\n" 10000003^done (gdb) &"set breakpoint pending on\n" =cmd-param-changed,param="breakpoint pending",value="on" 10000004^done (gdb) &"set width 0\n" =cmd-param-changed,param="width",value="4294967295" 10000005^done (gdb) &"set height 0\n" 10000006^done (gdb) &"set auto-solib-add on\n" 10000007^done (gdb) &"Warning: /usr/local/go/src/pkg/runtime: No such file or directory.\n" 10000008^done,source-path="/usr/local/go/src/pkg/runtime:$cdir:$cwd" (gdb) &"set substitute-path /go/src/pkg/runtime /usr/local/go/src/pkg/runtime\n" 10000009^done (gdb) 10000010^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0f44",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="23",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23"} (gdb) 10000011^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0b54",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="17",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17"} (gdb) 10000012^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0ad2",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="16",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16"} (gdb) 10000013^done,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0f44",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="23",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23"} (gdb) 10000014^done,bkpt={number="5",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0b54",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="17",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17"} (gdb) 10000015^done,bkpt={number="6",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0ad2",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="16",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16"} (gdb) 10000016^done,bkpt={number="7",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0f44",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="23",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:23"} (gdb) 10000017^done,bkpt={number="8",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0b54",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="17",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:17"} (gdb) 10000018^done,bkpt={number="9",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0ad2",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="16",thread-groups=["i1"],times="0",original-location="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go:16"} (gdb) 10000019^done,bkpt={number="10",type="breakpoint",disp="keep",enabled="y",addr="0x00000000010b0aa0",func="main.main",file="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",fullname="/Users/duanguanjun/work/gospace/src/awesomeProject/src/hello.go",line="15",thread-groups=["i1"],times="0",original-location="main.main"} (gdb) =thread-group-started,id="i1",pid="3944" =thread-created,id="1",group-id="i1" ~"[New Thread 0x1003 of process 3944]\n" =thread-created,id="2",group-id="i1" ~"[New Thread 0xe03 of process 3944]\n" =thread-exited,id="1",group-id="i1" =thread-exited,id="2",group-id="i1" =thread-group-exited,id="i1" 10000020^error,msg="During startup program terminated with signal SIGTRAP, Trace/breakpoint trap." (gdb)

请各位前辈大虾多多指点,先谢谢了!

freechinaren
freechinaren · #6 · 7年之前

测试发现macos 10.13.4下更新的gdb(8.1)调试有问题,这个坑耽误我不少时间,最后使用gdb8.0就可正常调试,希望该贴帮助到更多的人。

本人系统下有两个版本的gdb(8.1和8.0) 解决办法: 1.果断删除/usr/local/bin/gdb 这个软链接文件 (rm -f /usr/local/bin/gdb) 2.重新建立软链接文件 ln -s /usr/local/Cellar/gdb/8.0/bin/gdb /usr/local/bin/gdb 3.重新签名gdb(8.0) codesign -s gdb-cert /usr/local/bin/gdb

这样就搞定!

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传