1、加载go语言的gdb调试支持文件

source go/src/runtime/runtime-gdb.py 或者 设置为自动加载。

加载成功后gdb显示:Loading Go Runtime support.

2、编译go程序时打开调试符号和禁止内联

go build -gcflags "-N -l" xx.go

When compiling Go programs, the following points require particular attention:

  1. Using -ldflags "-s" will prevent the standard debugging information from being printed
  2. Using -gcflags "-N -l" will prevent Go from performing some of its automated optimizations -optimizations of aggregate variables, functions, etc. These optimizations can make it very difficult for GDB to do its job, so it’s best to disable them at compile time using these flags.

3、为golang新增的命令和函数

新增的命令会出现在 help info 里。

新增的函数会出现在 help function 里。

比如使用新增的cap函数:

p $cap(slicea)

4、查看协程和线程

info goroutines

info threads

在某个协程上执行gdb命令,比如查看2号协程的栈帧:

goroutine 2 bt

切换当前线程:

thread {线程号}

5、查看slice

len:p $len(slicea)

cap:p $cap(slicea)

array:p slicea.array[0]

6、go用户程序入口断点

b main.main

7、其他常用断点

lock:

b runtime.futex

channel:

b runtime.chansend

b runtime.chanrecv

调度:

b runtime.schedule
b runtime.save
b runtime.newm
b runtime.newproc
b runtime.osyield
b runtime.pidleput
b runtime.stopm

系统调用:

b syscall.read
b syscall.write
b syscall.Syscall
b syscall.Syscall6
b syscall.RawSyscall
b syscall.RawSyscall6
b runtime.entersyscall
b runtime.exitsyscall
b runtime.Gosched

go语言的gdb调试方法相关推荐

  1. linux下gdb调试方法和技巧详解

    linux下gdb调试方法和技巧整理 简介 UNIX或者UNIX-like下调试工具 启动gdb # 1. 在可执行程序不需要输入参数时,我们可以使用 gdb + 可执行程序 gdb ./typeid ...

  2. c语言程序只能调试成功一半,c语言程序的调试方法所谓程序调试是指对程序的查错和排错。调试程序一般应经过以下几个步骤:一、先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙...

    c语言程序的调试方法 所谓程序调试是指对程序的查错和排错. 调试程序一般应经过以下几个步骤: 一.先进行人工检查,即静态检查. 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查.这一步十分 ...

  3. C语言: GDB调试技术(一)

    启动GDB的方法有以下几种: 1.gdb <program> program也就是你的执行文件,一般在当然目录下.' 例如我写了一个简单的helloword程序 #include < ...

  4. linux系统c 如何使用教程,基于Linux操作系统的C语言编译和调试方法解析

    摘 要:文章先介绍了GCC编译器相关内容,包括GCC编译程序和GCC编译选项,随后介绍了GDB调试程序相关内容,包括GDB具体操作和GDB基础命令,最后介绍了C语言编写中的注意事项,希望能给相关人士提 ...

  5. QEMU+GDB调试方法

    两年前调试usb/ip开源项目时,就曾用虚拟机远程调试过Windows和Linux系统内核,当时在VMware Workstation上创建两个虚拟机进行调试,也没有记录下如何配置调试,只是大体的还记 ...

  6. linux core文件GDB调试方法

    一.如何使用core文件 1. 使用core文件 在core文件所在目录下键入: gdb -c coreXXX 它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此 ...

  7. linux下gdb调试方法与技巧整理

    目录 一.gdb简介 二.gdb使用流程 1.启动gdb 2.查看源码 3.运行程序 4.设置断点 5.单步执行 6.查看变量 7.退出gdb 三.gdb基本使用命令 1.运行命令 2.设置断点 3. ...

  8. 黑马程序员Linux系统开发视频之gdb调试方法

    一.gdb -- 命令     1.前提条件:可执行文件必须包含调试信息 gcc -gcc     2.gdb 文件名 -- 启动gdb调试     3.查看代码的命令         当前文件:   ...

  9. LINUX下的gdb调试方法

    首先对目标文件进行编译 例如: gcc test.c -o test 这时会生成一个文件test,然后我们就可以对test进行调试了 示例: gdb test 好了以后是设定断点 示例: break ...

最新文章

  1. Java语言基础学习笔记——基础语法
  2. mvc:default-servlet-handler /说明
  3. 关于他们回答的 怎样在桌面建一个python GUI的快捷方式 这个问题
  4. Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:...
  5. linux-文件的时间-四种时间类型
  6. git 命令行忽略提交_git命令入门(本地仓库)
  7. 带grub的软盘镜像制作
  8. 电脑自动化考证难不难
  9. 服务器安装安卓模拟器_安卓模拟器多开选择的服务器-BGP显卡物理机
  10. 写教案时,PDF怎么转换成PPT?用迅读PDF大师,超简单
  11. 批量删除QQ空间说说
  12. R语言基础—学习笔记 lecture01
  13. Linux 命令之 useradd -- 添加用户
  14. MLY翻译 -- 2.How to use this book to help your team?
  15. 【LaTex】常用特殊符号对应表
  16. A-Playing with Paper
  17. html如何找坐标,如何获取现在的坐标
  18. Processing 入门教程(三十) lerpColor颜色渐变
  19. 《计算机网络管理》 期末考试
  20. 说说职场中的交流和沟通(转)

热门文章

  1. 浏览器肉搏时代 市场细化明显
  2. OpenMeetins音视频参数 设置及优化
  3. Olympiad (奥林匹克信息赛) Visual Judge (Set3)
  4. 区块浏览器Tokenview受邀参加2023香港Web3嘉年华,用科技与善良打造全球区块浏览器Web3生态
  5. 清空文件上传文本框文件
  6. citrix software产品简介
  7. assert断言函数简介
  8. ufs2.0测试软件,三星S8被爆混用UFS闪存 如何测试是UFS 2.0还是UFS 2.1?
  9. 第一章(3)——执行计划重用
  10. 加载任务地图信息失败!!!