Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1734291
  • 博文数量: 297
  • 博客积分: 285
  • 博客等级: 二等列兵
  • 技术积分: 3006
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 22:04
个人简介

Linuxer, ex IBMer. GNU https://hmchzb19.github.io/

文章分类

全部博文(297)

文章存档

2020年(11)

2019年(15)

2018年(43)

2017年(79)

2016年(79)

2015年(58)

2014年(1)

2013年(8)

2012年(3)

分类: LINUX

2016-07-17 22:42:04

编译选项需要-g 

点击(此处)折叠或打开

  1. gcc -g3 -Wall -Wextra
  2. gcc -O9 -g3 -Wall -Wextra
list

点击(此处)折叠或打开

  1. gdb <your_code> -tui
  2. gdb <your_code>
  3. list 1,71         #list 1-71 行
  4. list main         #list main 函数,list后面可以跟行数,函数名
  5. info source      #查看当前在看的源代码文件
设置断点:

点击(此处)折叠或打开

  1. break 函数名
  2. break 行号
  3. break 文件名:行号
  4. break 文件名:函数名
  5. break +偏移量
  6. break -偏移量
  7. break *地址
  8. b iseq_compile            #对函数设置断点
  9. b compile.c:516         #特定行
  10. b +3                    #3行后
  11. b *0x08116fd6            #breakpoint set at address
  12. info break             #查看所有断点
  13. delete 2              #delete 2号断点
执行:

点击(此处)折叠或打开

  1. #运动 run,执行run 会执行到设置到断点的位置后暂停运行,可以简写为r.
  2. run -a
  3. start 能达到同样的效果,在main() 上设置断点,然后执行到main() 函数。
  4. #backtrace命令可以在遇到断点而暂停执行时显示栈帧
  5. backtrace 简写bt
  6. info stack     : 简写为info s 或者where
  7. bt 显示所有栈帧
  8. bt N 或者backtrace N: 显示开头N个栈帧
  9. bt -N 或者backtrace -N: 显示最后N个栈帧
  10. backtrace full /bt full
  11. backtrace full N/bt full N: 显示栈帧的同时显示局部变量
  12. next     #运行下一行指令
print 

点击(此处)折叠或打开

  1. #print 命令可以显示变量,简写为p
  2. p argv
  3. p *argv
  4. p argv[0]
  5. p argv[1]
显示寄存器

点击(此处)折叠或打开

  1. 显示寄存器:
  2. info reg
  3. 显示各个寄存器的内容:
  4. p $eax
  5. p/格式 变量
  6. 格式            显示说明
  7. x                16进制
  8. d                10进制
  9. u                无符号10进制
  10. o                8进制
  11. t                2进制
  12. a                地址
  13. c                字符
  14. f                浮点小数
  15. s                字符串
  16. i                显示为机器语言

点击(此处)折叠或打开

  1. p/c $eax    #eax 寄存器, char
  2. p $pc        #pc 寄存器或者eip
  3. x/i $pc     #x/i 显示汇编指令
  4. x/NFU ADDR    #ADDR 为希望显示的地址,N为重复次数,F为前面讲过的格式,U是代表的单位
  5. 单位        说明
  6. b             字节
  7. h            半字(2字节)
  8. w            字(4字节)默认值
  9. g            双字(8字节)

  10. x/10i $pc         #显示从pc所指地址开始的10条指令






阅读(1149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~