再探gdb经常使用命令
前面已经有了一篇对gdb经常使用命令的总结。见 http://blog.csdn.net/u011848617/article/details/12838875
这里对眼下学过的gdb命令进行了较完整的整理。
1、使用gdb调试代码,就要在编译时加入-g选项。
2、gdb -q —————— 启动gdb时不输出版权说明
3、gdb打开文件:
(1)gdb filename;
(2)先输入gdb,然后在gdb命令行输入file filename。
4、gdb选项(gdb中好多命令都有自己的简写字母):
不输入直接回车 ------------ 反复运行上一条命令
q(quit) ------------------- 退出gdb
file filename ------------- 打开文件filename
l(list) ------------------- 显示10行代码。若再次执行则显示接下来10行代码
list 5,10 ---------------- 显示第5到10行的代码
list test.c:5,10 -------- 显示源文件test.c中第5到10行的代码
list get_sum -------------- 显示get_sum函数周围的代码
list test.c:get_sum ------- 显示源文件test.c中get_sum函数周围的代码
shell XXX ----------------- 执行shell命令XXX
search/forward str -------- 从当前行向前查找第一个匹配的字符串str
reverse-search str -------- 从当前行向后查找第一个匹配的字符串str
r(run) -------------------- 执行程序
help XXX ------------------ 查看命令XXX的用法
help all ------------------ 查看全部命令的用法
whatis 变量或表达式 ------- 显示变量或表达式的数据类型
set variable 变量=值 ------ 给变量赋值
kill ---------------------- 结束当前程序的调试
continue ------------------ 让程序继续执行,直到下一个断点或者执行完为止
n(next) ------------------- 继续运行下一条语句,遇到函数把函数当作一条语句来运行
step ---------------------- 继续运行下一条代码,遇到函数会跟踪进入函数
nexti/stepi --------------- 单步运行一条机器指令
watch 变量名 -------------- 设置变量监測点
bt(backtrace) ------------- 显示程序当前执行位置和对当前位置的栈跟踪
display 变量或表达式 ------ 加入观察点。以后每次执行命令都会显示相应变量或表达式的值
undisplay num ------------- num为设置的display编号,能够用info display获取。不能用变量名
5、设置断点:
b(break) 行号 ----------------------- 在第n行设置断点
break fun_name ---------------------- 为函数fun_name设置断点
break 行号或函数名 if 条件 ---------- 程序在执行中。当条件满足时。在某行中断暂停执行
watch 条件表达式 -------------------- 程序执行中,满足条件时暂停执行,不须要写行号
info breakpoints -------------------- 查看当前全部的断点
disable 断点编号 -------------------- 使断点n失效
enable 断点编号 --------------------- 使断点n有效
clear ------------------------------- 删除本行断点(假设存在的话)
clear 行号 -------------------------- 删除此行断点
clear 函数名 ------------------------ 删除该函数的断点
delete 断点编号 --------------------- 删除指定编号的断点
6、print命令:
print XXX ------------------------------- 打印输出XXX的值
print 变量 = 值 ------------------------- 对变量赋值
print 表达式@要打印值的个数n ------------ 打印以表达式值開始的n个数
7、watch和display设置监測点的差别:
watch监測仅仅有当监測的变量值发生变化时才显示变量,并且旧值和新值都会显示。
display监測每一次执行命令都会显示变量的值,仅仅会显示变量的最新值。
再探gdb经常使用命令的更多相关文章
- 再探vim经常使用命令
最開始学习过vim,见 http://blog.csdn.net/u011848617/article/details/12837873 之后以前不了了之,当再次学习后,发现经常使用命令的掌握还 ...
- 再探ASP.NET 5(转载)
就在最近一段时间,微软又有大动作了,在IDE方面除了给我们发布了Viausl Studio 2013 社区版还发布了全新的Visual Studio 2015 Preview. Visual Stud ...
- gdb经常使用命令总结
1: 对于在应用程序中增加參数进行调试的方法: 直接用 gdb app -p1 -p2 这样进行调试是不行的. 须要像下面这样使用: #gdb app (gdb) r -p ...
- Bash,Vim,gdb&git常用命令
Bash 目录 pwd //查看当前目录 mkdir dir1 dir2 //创建目录 tree dir1 mv test1.cpp test2.cpp dir1 dir //移动文件/目录到目 ...
- 再探VIM配置
再探VIM配置 最初找到这个发行版spf13-vim,在ubuntu上用的还比较方便,有很多插件:最近在mac上用,总是不兼容vim,用brew安装了最新的vim,还是跟系统不兼容,总是有问题,于是就 ...
- gdb各种调试命令和技巧
陈皓:用GDB调试程序 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台 ...
- 【再探backbone 02】集合-Collection
前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...
- ViewPager+Fragment再探:和TAB滑动条一起三者结合
Fragment前篇: <Android Fragment初探:静态Fragment组成Activity> ViewPager前篇: <Android ViewPager初探:让页面 ...
- 再探jQuery
再探jQuery 前言:在使用jQuery的时候发现一些知识点记得并不牢固,因此希望通过总结知识点加深对jQuery的应用,也希望和各位博友共同分享. jQuery是一个JavaScript库,它极大 ...
随机推荐
- lua之链表的实现
-- lua链表的实现 node = {} list = node --初始化,构建一个空表 function init() list.data = --我将头结点的数据域存放链表的长度,以免浪费空间 ...
- thinkphp5验证码处理
1.确定项目目录>vendor>topthink>think-captcha目录存在 2.在config中添加验证码配置 //验证码配置 'captcha' => [ // 验 ...
- 关于Integer,127和128的问题
里面的,直接贴源码来看 Integer i=127; Integer b=128; Integer c=128; Integer d=127;Integer j;System.out.println( ...
- python中的句柄操作
python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...
- 4.model 字段
一.字段名 字段名 类型 参数 AutoField(Field) - int自增列, 必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自 ...
- MongoDB数据库的安装
首先就是MongoDB的下载,可以去MongoDB官网进行下载,https://www.mongodb.com/download-center/community,也可以通过百度网盘直接下载, 链接: ...
- JS 去除字符串空格
$.trim()是jQuery提供的函数,用于去掉字符串首尾的空白字符. "abc 123 def".replace(/\s/g, "") 去除所有的空格
- 集训第五周动态规划 I题 记忆化搜索
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- MBP 2018 & Mac keyboard shortcuts
MBP 2018 & Mac keyboard shortcuts https://support.apple.com/en-us/HT201236 delete key === Contro ...
- codevs4439 YJQ Requires Food
题目描述 Description 神犇YJQ有n个不同的妹子和m种食物,每一天每一种食物只供应一个妹子吃的份量.在接下来的t天内,YJQ准备包养所有的妹子. 对于每个妹子,她在t天内都只会吃某些特定的 ...