Linux下离线安装gdb及常用命令汇总

以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的。

1.离线安装gdb

像gcc、g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装,则去镜像文件中找,一般都有。

1.1 找到并选定镜像文件

虚拟机-》设置-》CD/DVD->勾选“已连接”+“启动时连接”-》使用ISO镜像-》“选择镜像文件xxx.iso”

1.2 在终端下操作安装

(懒得挂载,直接到/medium下找文件内容,当然也可以去挂载):

cd /medium

cd RHEL_6.5.../Packages

ls -l |grep gdb

rpm -i gdb-7.2-60.el6_4.1.x86_64.rpm

rpm -qa |grep gdb 或者 rpm -qa gdb

gdb -v

-----------安装Ok。

(注意:网上的离线使用tar包,安装gdb的方法,需要匹配上对应的gcc版本,否则很麻烦。) 

 

 

2.gdb 常用命令

2.1

(注意:程序要是debug版本,即编译的时候需要“-g”参数)

gdb dmhs_server   --启动程序

satrt dmhs.hs  -- 参数

l 10    --显示10行代码

b 行号  ---行断点

b func_name  --函数断点

b *0x234235  --地址断点

r  --运行

s --单步运行

“enter键” --重复上一条命令

print/p  xxx  -- 查看变量值

whatis  xxx --变量类型查看

bt  --查看堆栈

finish --结束当前函数

n  --next 下一次调试

q -- 退出

until 1314 --运行到某一行,可以用来跳出for,while循环

info threads  -- 查看线程信息

up 1  --返回线程的上一级函数

 

2.2 断点删除

delete 5
delete 1-10

2.3 清除断点
clear list_insert      //删除函数的所有断点
clear list.c:list_delet    //删除文件:函数的所有断点
clear 12        //删除行号的所有断点
clear list.c:12     //删除文件:行号的所有断点

2.4 每次调到 bread点的时候,都会自动的把变量值打印出来

display var1

display/a *pMen@menLen //动态内存(函数或者malloc)

display pMen //静态内存

2.5 在gdb中,可以用“set var variable=expr”命令设置变量的值

set var i = 8

 

3.其他gdb命令(追加)

3.1 调试方法1

ps -ef |grep edr   --->输出:pid 11556

gdb 

>attach 11556

>b test_pp

>c

3.2 调试方法2

 gdb -p [pid]

此时被attach的进程会阻塞,进入T模式(ps 命令看到STATE为T),如果调试完毕了,使用 detach  命令就释放了进程,它就自由运行了。

 

posted @ 2019-11-07 17:18  疾风泣影  阅读(6247)  评论(0)    收藏  举报