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

仙剑奇侠传的博客

羽化成仙

 
 
 

日志

 
 

GDB调试入门  

2011-08-04 12:51:32|  分类: C |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

GDB是GNU组织下的一个调试工具,可以调试C与C++程序。

一、其调试步骤如下:

二、步骤对应的指令

步骤

指令

生成调试文件

用gcc指令的-g选项或-ggdb选项。例:gcc –g demo.c –o demo

装载调试文件

示例 gdb demo.exe

设置断点

指令:break 行号(或函数名)

运行调试文件

指令:run

跟踪调试

指令:step:进入函数内部

next:下一步结点

contiue:继续

print 变量名 查看变量值

list 行号 列出源代码

finish 从函数执行返回

x/x &var 以16进制方式查看变量

x/o &var 以8进制查看变量

x/d &var以10进制查看变量

x/2b &var 以字节方式查看变量,如查看变量前两个字节的值

x/s &var 以字符串方式查看变量值

x/db &var 以10进制的方式查看前1个字节,类同有:x/xb ,x/ob

x/dw &var 以16字节的方式查看变量

print/x(d,o)以16进制、10、8进制显示寄存器值

  

 

三、常用gdb命令

指令

含义

file <文件名>

加载文件用来调式

attach <进程ID>

把当前运行的进程加载调试

run 【参数】

运行通过file加载的程序,可以加参数

info var

查看程序所有的变量

info func

查看程序所有的函数

main info sections

显示该程序各个段地址

kill

结束当前程序的调试

info break

显示所有断点信息

delete break <断点号>

删除指定的断点

enable break <断点号>

允许断点

disable break <断点号>

禁止断点

info float

显示浮点寄存器的值

info signals

显示程序可用的信号值

info address <符号名>

显示函数名、变量名的地址

info stack

跟踪栈信息

info thread

显示当前线程id

info source

显示程序源文件

set var <变量名=值>

给变量赋值.如:set var value=218

watch <变量名>

观察某一变量的中断

pwd

显示当前工作路径

shell <执行命令>

在gdb中打开相关应用程序。如shell editplus

x/3i $pc

显示pc开始的3条指令

disass [开始行号,结束行号]

反汇编指令

until <addr/line>

运行到指定的行号或地址:until 12

set disassembly-flavor intel/att

设定反汇编的输出为intel或att汇编语法

return

立即取消函数的运行

      

  评论这张
 
阅读(753)| 评论(0)

历史上的今天

评论

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

页脚

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