GDB使用方法

查看源码

list(简称 l)
 查看源程序代码,默认显示 10 行,按回车键继续看余下的。
 # 运行程序
 run (简称 r)
 运行程序直到遇到结束或遇到断点等待下一个命令
 # 断点相关
 break (简称 b)
  格式 b 行号,在某行设置断点
  continue(简称 c),继续执行到下一个断点处或运行结束
  step(简称 s)进入函数
  next(简称 n)不进入函数
  until:运行到某行,或者跳出循环体
info breakpoints :显示断点信息
Num: 断点编号
Disp:断点执行一次之后是否有效 kep:有效 dis:无效
Enb: 当前断点是否有效 y:有效 n:无效
Address:内存地址
What:位置
print 模拟输入

print (char *) 0x804a1e0

ni 单步机器指令,不进入函数
si

display/i $pc 显示pc
Fetching Title#pjzi

带参数的标准输入,重定向

一次执行多条函数:
define <函数名>
xxx
xxx
end

rsi r 开头,往回执行

x $ebp-0x10
打印-0x10(%ebp)的值

多线程调试

Pasted image 20240513131206.png

ulimit -a 查看 core 参数
ulimit -c unlimited 不限制

gdb <二进制文件> <core>

gdb xxx -p <PID>
Pasted image 20240513133406.png

gdb调试---多进程、线程 - 知乎

Pasted image 20240513184619.png

set scheduler-locking on

Debugging with GDB

posted @ 2025-04-12 23:07  Fsyrl  阅读(32)  评论(0)    收藏  举报