【Linux C】第九章 GDB调试技术
来源:互联网 发布:matlab中遗传算法代码 编辑:程序博客网 时间:2024/06/05 16:06
使用gdb之前,编译程序是需要加 –g 选项。
1. List 不带参数显示main前后的10行内容
a) list <line-number>
b) list <line-number1,line-number2>
2. run <arg1 arg2 arg3…….> 其参数可以包括输入输出重定向及通配符。
3. show args 查看上次运行时设置的参数(也是下次运行时的缺省参数)。
4. set args change-arg1 change-arg2 用于重新设置参数。
5. 关于断点 breakpoint
a) Break <line-number> 设置某一行为断点。
b) 避免将断点设置在空行或者注释行上。否则被就近设置在该行下第一个有效语句行。
c) Break <function-name> 设置某一函数入口为断点。程序执行至调用函数前停止。
d) Break <line-number or func> if <conditional expression> 当在此断点表达式为真时,启动断点功能。
e) Break <filename:line-number or filename:func-name> 在某个源文件下设断点。
f) Info break 查看断点信息:num, info,disp, enable,address,what等状态。
g) Delete breakpoint <point-number> 删除已设置对应num断点
h) Enable breakpoint <point-number> disable breakpoint <point-num> 使能/禁止对应断点。
i) Clear 无参数:表示删除上次停止处断点。 Clear <num> 删除指定行上的所有断点。
j) Watch 为观察点(数据断点)。 Watch <condition>。 断点是在cpu到某一地址取指令时发生中断。数据断点CPU到某一地址去读写数据时中断。
6. Next 用来一步步执行for 循环
7. Step 单步执行。
8. Gdb下运行shell命令: shell <command> <arg1 … >
9. print
a) Print <variable-name> 查看当前作用域&生存期下的变量。
b) Print <file::variable> 或 print <function::variable> 局部变量全局变量冲突时,查看某文件某函数下的变量。Eg. print ‘file2.c’::sum::x
c) 对程序中函数调用: print function(arg1,arg2..) 调用时指定形参的值。
d) Print <expression>计算/查看 表达式的值(根据当前常量变量函数等),但不可以使用宏。
e) Print <array-name>查看数据所有元素 print *array@length 查看以array地址开始长度为length的内存。
f) 变量输出格式:x(16)、d(10)、u(16)、o(8)、t(2)、a(16)、c(char)、f(float). eg. p/c i
10. Examine 查看内存 examin /nfu <address>
a) N 表示向后显示n个单位
b) F 表示输出格式 s表示字符串,i表示指令地址,其余参考print输出格式。
c) U表示每个单位字节数 b单字节 h双字节 w四字节g八字节。
11. Display/format expression 单步跟踪时自动显示变量。Format控制输出格式,参考print。
12. $pc 表示当前指令的地址。 I 可以表示输出格式为机器指令码。Eg。 display/I $pc
13. Undisplay 删除所有自动显示。Delete display <disp-numbers> 删除指定编号。使能/禁止指定编号:Disable/enable display <disp-numbers>
14. Info display 查看display情况。
15. Set/show print address/array/elements/null-stop/pretty/union on/off print的设置选项。
16. Print的历史记录,$1,$2…….
17. 查看寄存器
a) Info registers 查看除浮点寄存器外所有寄存器
b) Info all-registers 查看所有寄存器
c) Info registers <registers-name> 查看指定寄存器的情况。
18. Gdb可以使用环境变量。类似shell。
a) Eg、set $i=0
Print bar[i++]->contents
19. Info locals 查看局部变量
20. Continue 程序继续执行,允许自然死亡。
1. List 不带参数显示main前后的10行内容
a) list <line-number>
b) list <line-number1,line-number2>
2. run <arg1 arg2 arg3…….> 其参数可以包括输入输出重定向及通配符。
3. show args 查看上次运行时设置的参数(也是下次运行时的缺省参数)。
4. set args change-arg1 change-arg2 用于重新设置参数。
5. 关于断点 breakpoint
a) Break <line-number> 设置某一行为断点。
b) 避免将断点设置在空行或者注释行上。否则被就近设置在该行下第一个有效语句行。
c) Break <function-name> 设置某一函数入口为断点。程序执行至调用函数前停止。
d) Break <line-number or func> if <conditional expression> 当在此断点表达式为真时,启动断点功能。
e) Break <filename:line-number or filename:func-name> 在某个源文件下设断点。
f) Info break 查看断点信息:num, info,disp, enable,address,what等状态。
g) Delete breakpoint <point-number> 删除已设置对应num断点
h) Enable breakpoint <point-number> disable breakpoint <point-num> 使能/禁止对应断点。
i) Clear 无参数:表示删除上次停止处断点。 Clear <num> 删除指定行上的所有断点。
j) Watch 为观察点(数据断点)。 Watch <condition>。 断点是在cpu到某一地址取指令时发生中断。数据断点CPU到某一地址去读写数据时中断。
6. Next 用来一步步执行for 循环
7. Step 单步执行。
8. Gdb下运行shell命令: shell <command> <arg1 … >
9. print
a) Print <variable-name> 查看当前作用域&生存期下的变量。
b) Print <file::variable> 或 print <function::variable> 局部变量全局变量冲突时,查看某文件某函数下的变量。Eg. print ‘file2.c’::sum::x
c) 对程序中函数调用: print function(arg1,arg2..) 调用时指定形参的值。
d) Print <expression>计算/查看 表达式的值(根据当前常量变量函数等),但不可以使用宏。
e) Print <array-name>查看数据所有元素 print *array@length 查看以array地址开始长度为length的内存。
f) 变量输出格式:x(16)、d(10)、u(16)、o(8)、t(2)、a(16)、c(char)、f(float). eg. p/c i
10. Examine 查看内存 examin /nfu <address>
a) N 表示向后显示n个单位
b) F 表示输出格式 s表示字符串,i表示指令地址,其余参考print输出格式。
c) U表示每个单位字节数 b单字节 h双字节 w四字节g八字节。
11. Display/format expression 单步跟踪时自动显示变量。Format控制输出格式,参考print。
12. $pc 表示当前指令的地址。 I 可以表示输出格式为机器指令码。Eg。 display/I $pc
13. Undisplay 删除所有自动显示。Delete display <disp-numbers> 删除指定编号。使能/禁止指定编号:Disable/enable display <disp-numbers>
14. Info display 查看display情况。
15. Set/show print address/array/elements/null-stop/pretty/union on/off print的设置选项。
16. Print的历史记录,$1,$2…….
17. 查看寄存器
a) Info registers 查看除浮点寄存器外所有寄存器
b) Info all-registers 查看所有寄存器
c) Info registers <registers-name> 查看指定寄存器的情况。
18. Gdb可以使用环境变量。类似shell。
a) Eg、set $i=0
Print bar[i++]->contents
19. Info locals 查看局部变量
20. Continue 程序继续执行,允许自然死亡。
0 0
- 【Linux C】第九章 GDB调试技术
- linux GDB调试技术
- Linux的GDB调试技术
- Linux调试技术GDB命令
- gdb 调试linux c程序
- linux C 调试工具gdb
- Linux下GDB远程调试技术
- Linux技术——gdb调试基础
- 掌握 Linux 调试技术 使用 GDB 调试 Linux 软件
- Linux下C编程+GDB调试
- Linux下C编程+GDB调试
- Linux下C编程+GDB调试
- Linux下C编程+GDB调试
- linux 下 gdb 调试c/c++ 程序
- Linux下C编程和GDB调试
- Linux 下 C 语言编程 GDB 调试
- Linux下C/C++调试工具GDB
- linux下用gdb调试c程序
- Android应用开发——Activity组件
- .emacs-2014_02_20
- hdu3951 Coin Game
- CentOS6.3添加nginx系统服务详细说明
- Linux中.a,.la,.o,.so文件的意义和编程实现
- 【Linux C】第九章 GDB调试技术
- 工具类:判断传入的参数为非空
- asp.net网站存储过程验证登录的简单例子
- 黑马程序员_GUI
- 12306 流程解析
- make[1]: arm-linux-g++:命令未找到的解决办法
- JXL读写Excel文件
- 黑马程序员_集合常用类及方法
- c标准的发展