linux gdb安装步骤如下:
超过十多年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站设计、成都网站建设,成都网站推广,成都网站优化,整体网络托管,小程序制作,微信开发,app软件开发公司,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
1. 首先可以使用命令“ rpm -qa |grep gdb"查询系统中是否安装了gdb软件包,如果安装了,应该显示如下:
[root@localhost ~]# rpm -qa |grep gdb
gdbm-1.8.0-26.2.1
gdb-6.8-37.el5
gdbm-devel-1.8.0-26.2.1
2. 如果系统没有安装gdb软件包,需要先准备好gdb对应的软件包,通常在系统光盘Server文件夹下;3. 使用命令“rpm -ivh gdb-6.8-37.el5.rpm”或者类似的操作回车即可安装;4. 安装结束后,再使用命令“rpm -qa |grep gdb"查询,如果成功安装了,应该显示如下:[root@localhost ~]# rpm -qa |grep gdbgdb-6.8-37.el55. 如果安装不成功,检查一下错误信息,有可能是因为少安装了一些关联软件,根据提示安装即可。
首先,一般的命令其实也都是程序
装在系统路径下的程序的程序名,都可以作为命令直接调用
具体哪些路径是“系统路径”,Linux下可以用$PATH$命令来查看(通常会有多个路径,用冒号隔开)
而gdb其实是gcc/g++编译器的一个附带的调试器
虽然现在主流的Linux发行版中都会自带gcc编译器,当然也会附带这个gdb的调试器
但毕竟它不算是Linux系统的内部组件,所以自然也不能算做Linux的自带命令了
Gdb调试
注意:在Gcc编译选项中一定要加入
–g
退出GDB:quit
或
Ctrl+d
调试过程:
1.
查看文件
命令:
(gdb)
l
命令:(gdb)
b
行号
注:到第17行停止,并没有执行17行
3.
查看断点情况
info
b
4.
运行代码
r
命令:
(gdb)
r
(也可以指定行开始运行,在r后面加上行号)
5.
查看变量值
p
命令:(gdb)
p
变量名
6.
设置监视点:
watch
z
(变量名)
也可以是复杂的表达式
7.
单步运行
命令:(gdb)
n
(逐过程)
8.逐步,会进入函数
命令:(gdb)
s
9.条件断点
将正常断点转变为条件断点:condition
如:condition
1
i
==
10
只有当满足条件i
==
1时,才会在断点1处暂停
10.
恢复程序运行
c
命令:
(gdb)
c
(程序就会运行,如果没有断点,就运行剩下部分,如果有断点,就会运行到下一个断点)
11.
去除断点
clear
line_number
clear
filename:line_number
12.
help
12.1
help找出类别
12.2help从列表中
分类: 电脑/网络 操作系统/系统故障
问题描述:
第一次在Linux上工作,要用到一个什么gdb的东东。gdb到底是什么呢,各位老大?
解析:
Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:
它使你能监视你程序中变量的值.
它使你能设置断点以使程序在指定的代码行上停止执行.
它使你能一行行的执行你的代码.
在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容:
GDB is free sofare and you are wele to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.14 (i486-slakware-linux), Copyright 1995 Free Sofare Foundation, Inc.
(gdb)
当你启动 gdb 后, 你能在命令行上指定很多的选项. 你也可以以下面的方式来运行 gdb :
gdb fname
当你用这种方式运行 gdb , 你能直接指定想要调试的程序. 这将告诉gdb 装入名为 fname 的可执行文件. 你也可以用 gdb 去检查一个因程序异常终止而产生的 core 文件, 或者与一个正在运行的程序相连. 你可以参考 gdb 指南页或在命令行上键入 gdb -h 得到一个有关这些选项的说明的简单列表.
你的gdb压根就没有解析出来断点,你的库有问题。你run后bt一下就可以进入断点的
你把代码发我吧,给你调试
1)确保gdb版本=7.0
2)安装python-debuginfo包。
如:python-debuginfo-2.6.6-29.el6_2.2.x86_64.rpm,这个版本号一定要跟你所用的python版本一致(可以rpm -qa|grep python查看你安装的python的详细版本号)。
Centos下找包地址为:。
3)就可以运行命令
#gdb python pid
进行调试。
linux下gdb如何调试python程序
(1)假设要debug的进程号为1000,运行如下命令:
$ gdb -p 1000
使用此命令即可使gdb附加到进程。
(2)载入libpython脚本
如果你的gdb是redhat或fedora等厂商修改过的,会有--python选项,使用此选项即可指定gdb启动时载入的Python扩展脚本(此脚本是扩展gdb的,不是我们需要debug的脚本)。
$ gdb --python /path/to/libpython .py -p 1000
如果安装的是GNU的gdb,就需要打开gdb后手动载入libpython.py脚本
(gdb) python
import sys
sys.path.insert(0, '/path/to/libpython.py' )
import libpython
end
(gdb)
这时就可以使用py-bt命令打印当前线程的Python traceback了。libpython还提供很多命令,例如py-print打印变量,py-locals打印所有本地变量等等,详细可打开libpython.py查看。