GDB调试入门笔记

What?

GDB是什么?
全称GNU symbolic debugger
百度百科的解释:

程序调试工具
UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。

GDB支持的语言

  1. C/C++
  2. Assembly
  3. Go
  4. Pascal
  5. Rust

Why

The purpose of a debugger such as GDB is to allow you to see what is
going on “inside” another program while it executes – or what
another program was doing at the moment it crashed.

这个是gdb官方文档里面的内容给出了为什么需要gdb


How

安装GDB

安装命令

apt-get install gdb

查看是否安装成功

gdb --version

下面是安装成功的信息显示
image

调试简单的程序

预备一个程序

image
编译这个程序生成可执行文件
image
image

调试

如果我们想调试一个程序我们在用gcc编译的时候需要加上参数-g

gcc -g test.c

如何进入调试界面呢?
使用命令

gdb a.out

这里所有的a.out都是用gcc带参数生成的可执行文件

第一个命令
执行

r

image
退出gdb

quit

image

使用

break

break
简写b
可以在函数处打断点,也可以在某一行打断点

b main

在某一行打断点

b 7

info

info 是用来查看信息的
info b
查看自己的打的断点

image

list

查看源代码
list
查看我们写的代码

list

image

next

next;往下走一行
简写:n

print

我们打断点的目的是让程序在,某一步停止,便于我们查看信息。
如何查看信息呢?
使用print
简写p

p arr[0]

image

image

除了可以打印变量的值之外,我们还可以打印变量的地址

p &arr[0]

image
一个int占4个字节

step

进入某个函数
简写s
image

一些小技巧

gdb前+shell

image

日志功能

set logging on

watch point| catch point

调试core

等到用到时候再学吧

调试一个运行的程序

等到用到时候再学吧

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值