注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永恒的遗失古都-亚特兰蒂斯

一个游戏开发者的个人博客。

 
 
 

日志

 
 

GDB基本命令  

2011-08-08 17:54:00|  分类: 程序相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1:查看代码
(gdb) list 行号
查看指定行号附近的代码。
(gdb) search KeyWord
查找当前文件下一个KeyWord
(gdb) reverse-search KeyWord
查找当前文件上一个KeyWord

2:执行程序
(gdb) run 可执行程序名
执行准备调试的程序
同时可以
使用(gdb) set args -x -y 来修改参数
使用(gdb) show args 获取参数

3:数据显示/修改
(gdb) print p
可以显示当前变量p的值
同时可以
print Fun( 1, 2 ) 可以输出函数返回值
print *pMyPtr 可以输出复杂对象的值
print $1 可以输出历史记录变量的值
(gdb) whatis p
可以显示当前变量p的类型(对自定义结构无效)
(gdb) set variable
对指定变量赋值
(gdb) ptype p
获取一个变量p的类型。(对自定义结构有效)
$pc 寄存器-程序计数器
$fp 寄存器-当前堆栈帧指针
$sp 寄存器-栈指针
$ps 寄存器-处理器状态

4:断点
(gdb) break FileName.cpp:2202
可以让程序在FileName.cpp的2202行设置断点
(gdb) breal FileName.cpp:Myfun if pParam==100
可以让程序在FileName.cpp文件中的MyFun函数处设置断点,该断点触发条件为 pParam==100 为真时才有效。
通常断点后可以使用
(gdb) backtrace 命令查看调用堆栈表。
<上文中的break允许用一个字符b替代>
我们可以查看当前程序项目的所有断点列表,命令为
(gdb) info break
删除全部断点,可使用下面命令
(gdb) delete breakpoint
删除一个断点,可以使用下面命令
(gdb) delete breakpoint 1
则删除了编号为1的断点。
禁止使用断点 (gdb) disable breakpoint 1
允许使用断点 (gdb) enable breakpoint 1
删除指定行上的断点 (gdb) clean 2204
则删除了2204行上的断点。

5:流程控制
(gdb) next
不进入函数内部的单步执行,可用一个字符n替代。
(gdb) step
进入函数内部的单步执行,可用一个字符s替代。
(gdb) finish
若进入了某函数,则直接执行至退出该函数体并显示其返回值。(void不显示)。
(gdb) call FunName( 167 )
直接调用执行一个函数FunName,括号内加参数
(gdb) continue
当进入断点后,希望继续执行下去,则使用continue

6:多线程
(gdb) info threads
获取当前程序的所有线程列表
(gdb) thread ID
切换指定ID的线程为当前调试线程
(gdb) break FileName.cpp:1122 thread all
在所有线程的FileName.cpp文件中1122行设置断点
(gdb) thread apply ID1 ID2 ID3 command
在ID1,ID2,ID3等一个或多个线程中执行GDB的command命令
(gdb) thread apply all command
在所有线程中执行GDB的command命令
(gdb) set scheduler-locking off (或on或step)
当off时,意味着所有线程正常执行。这个是默认状态
当on时,意味着只有当前调试的线程正常执行,其他线程将中断。
当step时,意味着只有当前调试的线程正常执行,但当next过一个函数后,所有线程正常执行。

  评论这张
 
阅读(4)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018