0
点赞
收藏
分享

微信扫一扫

GDB简明使用

回溯 2022-02-24 阅读 49

最近在学OS(Ubuntu,X86_64),想看看从C接口到系统调用的过程,但是写了个小代码发现,使用C接口时(比如fopen)只会以callq的形式被调用,所以打算学一下gdb。说来惭愧,以前一直没有系统学过,偶尔用用得查半天。

顺便发现了一个好网站,里面整理了很多linux工具的用法

GDB

  • 启动和退出
g++ -g a.cpp -o a
gdb a	// 启动
q		// 退出
  • 调试运行
run(r)		// 运行程序到下个断点处停止
continue(c) // 继续执行到断点处
next(n)		// 单步跟踪
step(s)		// 单步调试,进入函数
  • 设置断点
break(b)
b n		// 在第n行设置断点  
b func	// 在func入口处加断点
info b	// 查看断点情况
  • 源代码
list(l) // 查看程序源代码,默认10行
  • 打印信息
print exp	// 打印表达式的信息

objdump

  • 反汇编
objdump -D	main	// 反汇编所有section
objdump -S	main	// 尽可能反汇编出源代码
举报

相关推荐

0 条评论