gdb调试

文章目录

  • 查看源代码
  • 断点
  • 程序运行
  • 变量查看
    • 单个变量
    • 多个变量
    • 检测变化
    • 查看类型
    • 改变变量值
  • 查看堆栈
  • 查看内存
  • layout

查看源代码

  • 列出源代码
list 行号               
     行号1,行号2
     function_name
     function_name,行号

断点

  • 开启断点
break 行号
      function_name
  • 使能断点
enable break 断点号
  • 失能断点
disable break  断点号
delete  break  断点号
  • 查看断点
info break

程序运行

方式 指令
从头运行 start
开始运行 run
单步运行 next
继续 continue
步入 step
跳出 finish
运行到 until 行号/function_name
  • 跳过
skip function function_name        跳过函数
     file     filename             跳过文件
     delete/enable/disable         删除/使能/失能
  • 截取信号
signal 信号名(SIGSEGV段错误/SIGILL非法指令/SIGINT中断/SIGALRM警告)

变量查看

单个变量

print 变量名(加上@可改变长度)
      "文件名"::变量名
      $寄存器名
      i $pc      当前汇编指令

多个变量

display 变量名       ; 每次暂停时输出一组变量的值
info display        ; 查看变量的组
undisplay 变量名

检测变化

watch 变量名      值改变时会中断程序

查看类型

ptype 变量名

改变变量值

set var 变量名=

查看堆栈

info locals     栈内的局部变量值表
back trace      函数栈帧调用关系
bt full         函数调用和实参返回值

查看内存

x /nfu 内存地址(&变量名)      

n:要显示内存的长度
f:显示数据格式(x=16进制,d=10进制,t=2进制)
u:显示的字节数(b=1字节,h=2字节,w=4字节,g=8字节)

layout

  • 打开窗口
layout src
layout regs
layout asm
layout split
  • 更新
ctrl+L      : 更新所有窗口
  • 切换窗口
focus cmd/asm/regs/src     
ctrl+x 1                   ; 只显示一个窗口
ctrl+x 2                   ; 显示两个窗口
ctrl+x a              	   ; 退回到cmd模式

                                     ------ BY Flier

2024.2.6

你可能感兴趣的:(#,Linux基础,c语言,linux,bug)