gdb

Introduction

gdb(GNU Debugger)是GNU项目中的调试工具。

Usage

Common

  • 帮助
    help <command-name>

  • 运行
    run = r 运行到断点
    c = continue 继续到断点

  • 断点
    b <breakpoint-name> 函数名处打断点
    b <location> 在地址处打断点

  • 步进
    s C语言步进 进入函数
    si 汇编语言步进 进入函数
    n C语言步进 不进入函数
    ni 汇编语言步进 不进入函数

  • 观察点

  • 打印内存: 使用x命令来打印内存的值,格式为x/nfu addr,以f格式打印从addr开始的n个长度单元为u的内存值。
    x/nfu <address>

    • n:输出单元的个数
    • f : 输出格式,如x表示以16进制输出,o表示以8进制数处,默认x,如果地址所指的是字符串,那么格式可以是s,如果地址是指令地址,那么格式可以是i。
    • u:一个单元的长度,b表示1byte,h表示2byte(half word),w表示4byte,g表示8byte(giant word)
  • 打印变量
    print/x <variable>

    • d 按十进制格式显示变量
      x 按十六进制格式显示变量
      a 按十六进制格式显示变量
      u 按十六进制格式显示无符号整型
      o 按八进制格式显示变量
      t 按二进制格式显示变量
      c 按字符格式显示变量
      f 按浮点数格式显示变量
  • 打印信息
    info registers prints the value of every register.
    info frame prints the current stack frame.
    list <location> prints the source code of the function
    at the specified location.
    backtrace might be useful as you work on lab 1

  • tui
    tui enable
    layout <name> switches to the given layout.

.gdbinit

Updating…

作者

huayi

发布于

2023-03-29

更新于

2023-08-25

许可协议