码迷,mamicode.com
首页 > 数据库 > 详细

编译语言的gdb调试命令

时间:2016-08-22 18:05:55      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。

1、运行    

gdb :                  运行gdb调试程序
file <文件名>:         加载被调试的可执行程序文件。
run(简写r):         运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。

continue(简写c):    继续执行,到下一个断点处(或运行结束) 

next(简写n):        单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体;

step(简写s):        单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的 

【这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。】

si,ni :                si命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。

until:                运行程序直到退出循环体; / until+行号: 运行至某行 

finish:               运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息。 

call 函数(参数):      调用“函数”,并传递“参数”,如:call gdb_test(55) 

quit:                 简记为 q ,退出gdb

2、设置断点

b:                     Breakpoint的简写,设置断点。可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。

delete                 断点号n:删除第n个断点

disable                断点号n:暂停第n个断点

enable                 断点号n:开启第n个断点

clear                  行号n:清除第n行的断点

info breakpoints      (简写info b) :显示当前程序的断点设置情况

3、查看源代码

list                  (简写l):列出程序的源代码,默认每次显示10行。

list行号:             将显示当前文件以“行号”为中心的前后10行代码,如:list 12

list 函数名:          将显示“函数名”所在函数的源代码,如:list main

list :                不带参数,将接着上一次 list 命令的,输出下边的内容。

4、打印表达式

p <变量名称>           Print的简写,显示指定变量(临时变量或全局变量)的值。
display 表达式:      在单步运行时将非常有用,使用display命令设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值。如:display a 
watch 表达式:        设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。如: watch a

5、查询运行信息

where/bt :           当前运行的堆栈列表

set args 参数:        指定运行时的参数

show args:           查看设置好的参数

info program:        来查看程序的是否在运行,进程号,被暂停的原因

6、分割窗口

layout:             用于分割窗口,可以一边查看代码,一边测试:

layout src:         显示源代码窗口

layout asm:         显示反汇编窗口

layout regs:        显示源代码/反汇编和CPU寄存器窗口

layout split:       显示源代码和反汇编窗口

Ctrl + L:           刷新窗口

 

编译语言的gdb调试命令

标签:

原文地址:http://www.cnblogs.com/tyomcat/p/5796270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!