你的gdb压根就没有解析出来断点,你的库有问题.你run后bt一下就可以进入断点的
你把代码发我吧,给你调试
gdb是用来调试二进制程序的,不能调试python脚本. python自带pdb模块,可以用来调试自己的脚本. 使用python -m pdb ,交互方式,命令与gdb类似.
作用:设置断点(BreakPoint)
我们使用break命令来设置断点,break在进入指定函数时停住.C++中能使用class::function或function(type,type)格式来指定函数名.
break
在指定行号停住.
break +offset
break -offset
在当前行号的前面或后面的offset行停住.offiset为自然数.
break filename:linenum
在源文件filename的linenum行处停住.
break filename:function
在源文件filename的function函数的入口处停住.
break *address
在程式运行的内存地址处停住.
break命令没有参数时,表示在下一条指令处停住.
break...if
...能是上述的参数,condition表示条件,在条件成立时停住.比如在循环境体中,能设置break if i=100,表示当i为100时停住程式.
查看断点时,可使用info命令,如下所示:(注:n表示断点号)
info breakpoints [n]
info break [n]
GNU调试器(GNU Debugger, GDB)是一个开源的源代码级的调试工具,其性能优良、功能齐全、易于使用,在嵌入式系统开发过程中扮演着越来越重要的角色.此时此刻呢是我为大家收集的[Linux]gdb查看内存区命令,希望能帮到大家.
[Linux]gdb查看内存区命令
用gdb查看内存
格式: x /nfu
说明
x 是 examine 的缩写
n表示要显示的内存单元的个数
f表示显示方式, 可取如下值
x 按十六进制格式显示变量.
d 按十进制格式显示变量.
u 按十进制格式显示无符号整型.
o 按八进制格式显示变量.
t 按二进制格式显示变量.
a 按十六进制格式显示变量.
i 指令地址格式
c 按字符格式显示变量.
f 按浮点数格式显示变量.
u表示一个地址单元的长度
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
举例
表示从内存地址buf读取内容,
h表示以双字节为一个单位,
u表示按十六进制显示
例子:
n是个局部变量
(gdb) print n
(gdb)
看了"[Linux]gdb查看内存区命令"还想看:
① Linux使用dmidecode命令查看内存型号
gdb是GNU开源组织发布的一个强大的Linux程序调试工具,比图形化的调试工具更强大,主要来调试C/C++语言程序.
Debug 版本的可执行程序包含调试信息,用于程序员调试程序.
Release 版本的可执行程序往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以方便用户使用.
用gcc/g++编译时,要加上-g选项生成debug版本的可执行程序,否则就无法使用gdb调试了.
r 表示开始run, 如果在运行的过程中发生了错误,比如segmentation fault,可以查看此时的出错源代码:
通过b或者break设置断点,断点的设置可以通过函数名、行号、文件名+函数名、文件名+行号以及偏移量、地址等进行设置.
从断点处继续运行
退出gdb
以上就是土嘎嘎小编为大家整理的gdb调试linux命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!