gdb工具常用命令
2017-11-10 15:42
302 查看
gdb下调试程序:
编译时加“-g”,否则无调试信息
set args 给main函数设置参数值;
show args 启动后查看设置的参数
show environment [varname]查看环境变量([varname]表示可选项,不写则显示全部的环境变量)
set environment varname [=] value 修改环境变量
run > outfile 将输出重定向到文件
info proc status/all 查看程序的状态信息,包含函数地址,进程号,线程等等
调试多线程:
info threads 列出所有的线程信息
依次列出的内容为:线程号,线程ID,堆栈信息,其中"*"所在行为当前gdb所在线程
thread threadno 切换线程
设置断点:
break(b) linenum 在某行设置断点
break filename:linenum 在某个文件某行设置断点
break function(class::function)在某个函数名(或类里的方法名)设置断点,(function表示函数名)
清除断点:
clear function
clear line
delete line
显示所有的断点
info breakpoint
执行:
step conut 执行到某行(也可用来进入某个函数内部)
next 按步往下执行
finish 执行完当前函数
查看堆栈信息:
backtrace(bt)打印当前函数调用栈的信息
backtrace n (n>0)表示只打印栈顶上n层的调用栈的信息
(n<0)表示只打印栈底下n层调用栈的信息
说明:一般来说,最顶层的栈就是当前栈,0表示栈顶,1就是栈的第二层。如果想看栈下面详细信息就切换当前栈。
切换堆栈:
frame n (或f n)切换到某一层堆栈,n是一个从0开始的整数,是栈中的层编号。比如:frame 0,表示栈顶,frame 1,表示栈的第二层。
frame addr(栈地址)
up n 表示向栈的上面移动n层
down n 表示向栈的下面移动n层 不写n值,表示移动一层
查看当前栈的详细信息:
frame 或f
会显示当前函数名,函数参数值,函数所在文件及行号,函数执行到的语句
info frame(或info f)
会显示出更为详细的信息
info frame n
显示某层栈的详信息
info args
查看新参栈信息
info locals
查看当前栈变量信息
查看源文件:
list linenum
list function
list first,last
查看数据:
print varname 打印变量值
print /x varname 按照16进制打印结果
/o 8进制输出结果
/f float输出结果
修改运行程序的值
set var varname = value 设置varname的值为value
查看命令历史记录
show history
show commands
编译时加“-g”,否则无调试信息
set args 给main函数设置参数值;
show args 启动后查看设置的参数
show environment [varname]查看环境变量([varname]表示可选项,不写则显示全部的环境变量)
set environment varname [=] value 修改环境变量
run > outfile 将输出重定向到文件
info proc status/all 查看程序的状态信息,包含函数地址,进程号,线程等等
调试多线程:
info threads 列出所有的线程信息
依次列出的内容为:线程号,线程ID,堆栈信息,其中"*"所在行为当前gdb所在线程
thread threadno 切换线程
设置断点:
break(b) linenum 在某行设置断点
break filename:linenum 在某个文件某行设置断点
break function(class::function)在某个函数名(或类里的方法名)设置断点,(function表示函数名)
清除断点:
clear function
clear line
delete line
显示所有的断点
info breakpoint
执行:
step conut 执行到某行(也可用来进入某个函数内部)
next 按步往下执行
finish 执行完当前函数
查看堆栈信息:
backtrace(bt)打印当前函数调用栈的信息
backtrace n (n>0)表示只打印栈顶上n层的调用栈的信息
(n<0)表示只打印栈底下n层调用栈的信息
说明:一般来说,最顶层的栈就是当前栈,0表示栈顶,1就是栈的第二层。如果想看栈下面详细信息就切换当前栈。
切换堆栈:
frame n (或f n)切换到某一层堆栈,n是一个从0开始的整数,是栈中的层编号。比如:frame 0,表示栈顶,frame 1,表示栈的第二层。
frame addr(栈地址)
up n 表示向栈的上面移动n层
down n 表示向栈的下面移动n层 不写n值,表示移动一层
查看当前栈的详细信息:
frame 或f
会显示当前函数名,函数参数值,函数所在文件及行号,函数执行到的语句
info frame(或info f)
会显示出更为详细的信息
info frame n
显示某层栈的详信息
info args
查看新参栈信息
info locals
查看当前栈变量信息
查看源文件:
list linenum
list function
list first,last
查看数据:
print varname 打印变量值
print /x varname 按照16进制打印结果
/o 8进制输出结果
/f float输出结果
修改运行程序的值
set var varname = value 设置varname的值为value
查看命令历史记录
show history
show commands
相关文章推荐
- [zz]Linux调试工具strace和gdb常用命令小结
- 基于Linux调试工具strace与gdb的常用命令总结
- Linux调试工具strace和gdb常用命令小结
- Linux调试工具strace和gdb常用命令小结
- gdb工具常用命令
- Linux调试工具strace和gdb常用命令小结
- Linux调试工具strace和gdb常用命令小结-转
- 基于Linux调试工具strace与gdb的常用命令总结
- Linux调试工具strace和gdb常用命令小结
- Linux调试工具strace和gdb常用命令小结
- gdb调试工具常用命令
- GDB常用命令
- gdb常用命令
- 常用git命令和工具
- Java常用命令工具
- gdb常用命令的使用
- GDB学习整理2--gdb常用命令
- Linux下Vim工具常用命令
- gdb 常用命令
- gdb常用命令