LinuxGDB的安装和使用
安装
安装gdb的具体步骤如下:
1、查看当前gdb安装情况
rpm -qa | grep gdb
如果有,则可以先删除:
rpm -e --nodeps 文件名
如果没有,则进行下一步。
2、下载gdb源码包或者直接apt安装。
apt命令安装:
sudo apt install gdb
源码包安装:
-
在linux中输入:
-
wget http://ftp.gnu.org/gnu/gdb/gdb-7.10.1.tar.gz
-
解压:
-
tar -zxvf gdb-7.10.1.tar.gz
-
进入gdb目录:
-
cd gdb-7.10.1
-
输入命令:
-
./configure
-
make
-
make install
3、查看是否安装成功
gdb -v
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
使用
-
编写一段简单的C语言程序
-
#include <stdio.h>
-
int main()
-
{
-
int i = 0;
-
for(i = 0;i<10; i)
-
{
-
printf("%d ",i);
-
}
-
printf("\n");
-
return 0;
-
}
-
生产debug版本的可执行程序:
gcc test.c -o test_g -g
注意:所有的调试代码操作必须在debug版本下执行
使用下面的命令可以查看调试信息:
readelf -S test_g | grep debug
结果如下:
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
进入gdb
gdb test_g
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
显示源代码
list或l :显示源代码,每次显示10行
list或l 函数名:列出某个函数的源代码
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
打断点,查看断点信息
break或b 行号:在某一行设置断点
break或b 函数名:在某个函数开头设置断点
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
info b:查看断点信息
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
运行程序
run或r:运行程序
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
查看变量信息
print或p 变量:打印变量值
print或p &变量:打印变量地址
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
逐语句执行
step或s:进入函数调用
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
逐过程执行
next或n:单条执行(不进入函数调用)
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
删除断点
delete breakpoints或d:删除所有断点
delete breakpoints或d 1:删除序号为n的断点
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
调用堆栈
breaktrace或bt:查看各级函数调用及参数
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
跟踪变量
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的变量的跟踪
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
跳转至x行
until X行号:跳至X行
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
跳转至下一个断点
continue或c:从当前位置开始连续而非单步执行程序
![学新通 学新通](/static/whole/images/alert/data-load/load-15.gif)
-
将一个指定函数跑完
finish:执行完成一个函数就停止
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiagafi
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22