几则gdb使用技巧
2006-08-19 19:38
225 查看
几则gdb使用技巧
转载时请注明出处:http://blog.csdn.net/absurd/
gdb的功能强大,与带GUI的调试器相比有过之而无不及,使用也就相对复杂一些。一方面是它的亲和力稍差,毕竟是给程序员用的,不用做得傻瓜化。另外一方面它的命令太多,我们常常浅尝辄止,只记得几个常用的命令就知足了,没有充分发挥它的潜力。今天要调试一段ARM汇编代码,按常规方法调试汇编代码非常麻烦,花了点时间看gdb的帮助,发现几个技巧比较有用,这里做个笔记。
1. 使用自定义命令。gdb内置的命令很多,这些命令都遵循unix的一贯原则,每个命令都只有一个基本功能。命令的粒度比较细,可重用性会更高。自己要去组织这些基本命令,以形成功能更强大的命令。这可以用define来实现,如:
(gdb) define nid
Type commands for definition of "nid".
End with a line saying just "end".
>ni
>disassemble $pc $pc+16
>end
2. 多窗口。GUI调试器可以同时打开多个小窗口,分别显示寄存器、汇编和源代码等。在gdb里也可以做到,但同时最多只能显示两个窗口,试了一下也很方便的。基本命令如下:
a) `layout src' 仅显示源代码窗口。
b) `layout asm' 仅显示汇编代码窗口。
c) `layout split' 显示源代码和汇编代码窗口。
d) `layout regs' 显示寄存器和源代码窗口,或者寄存器和汇编代码窗口。
e) `layout next` 和 `layout prev' 切换窗口。
f) ctrl + L 刷新屏幕。
g) `C-x 1' 单窗口模式。
h) `C-x 2' 双窗口模式。
i) `C-x a' 回到传统模式。
~~end~~
转载时请注明出处:http://blog.csdn.net/absurd/
gdb的功能强大,与带GUI的调试器相比有过之而无不及,使用也就相对复杂一些。一方面是它的亲和力稍差,毕竟是给程序员用的,不用做得傻瓜化。另外一方面它的命令太多,我们常常浅尝辄止,只记得几个常用的命令就知足了,没有充分发挥它的潜力。今天要调试一段ARM汇编代码,按常规方法调试汇编代码非常麻烦,花了点时间看gdb的帮助,发现几个技巧比较有用,这里做个笔记。
1. 使用自定义命令。gdb内置的命令很多,这些命令都遵循unix的一贯原则,每个命令都只有一个基本功能。命令的粒度比较细,可重用性会更高。自己要去组织这些基本命令,以形成功能更强大的命令。这可以用define来实现,如:
(gdb) define nid
Type commands for definition of "nid".
End with a line saying just "end".
>ni
>disassemble $pc $pc+16
>end
2. 多窗口。GUI调试器可以同时打开多个小窗口,分别显示寄存器、汇编和源代码等。在gdb里也可以做到,但同时最多只能显示两个窗口,试了一下也很方便的。基本命令如下:
a) `layout src' 仅显示源代码窗口。
b) `layout asm' 仅显示汇编代码窗口。
c) `layout split' 显示源代码和汇编代码窗口。
d) `layout regs' 显示寄存器和源代码窗口,或者寄存器和汇编代码窗口。
e) `layout next` 和 `layout prev' 切换窗口。
f) ctrl + L 刷新屏幕。
g) `C-x 1' 单窗口模式。
h) `C-x 2' 双窗口模式。
i) `C-x a' 回到传统模式。
~~end~~
相关文章推荐
- 几则gdb使用技巧 zz
- 几则gdb使用技巧(转)
- 几则gdb使用技巧
- PHP中正则表达式的几则使用技巧归总
- mysql 命令行使用的几则技巧
- 虚机使用技巧几则(经验交流)
- PCRE 正则表达式的几则使用技巧归总
- gdb 使用技巧
- PHP正则表达式的几则使用技巧
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要(1)
- gdb使用技巧
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要
- Xcode常用技巧(1)-使用Xcode进行代码分析及GDB调试
- GDB使用技巧
- gdb 使用技巧
- gdb使用技巧
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要(3)——程序崩溃处理
- PHP正则表达式的几则使用技巧
- 《软件调试的艺术》学习笔记——GDB使用技巧摘要(4)——Pthread线程调试
- PHP正则表达式的几则使用技巧