linux下gdb调试本地程序

本文介绍了如何在Linux环境下使用GDB进行程序调试,包括设置编译选项以包含调试信息,启动GDB并运行程序,设置断点,查看内存内容以及通过GDB获取函数地址和虚函数表。具体操作如添加"-g"编译选项,使用"x/nfu <addr>"命令查看内存,通过"info line"和"p _ZN..."获取函数位置,以及查看虚函数表等。
摘要由CSDN通过智能技术生成

1. 首先保证编译的程序包含了symbols符号表,否则会有如下提示:

Reading symbols from demo...(no debugging symbols found)...done.
这样表明编译的可执行程序没有包含符号表,需要在CMakeLists.txt添加下面一条语句

add_definitions("-Wall -g")

 

2. 启动进入调试:

   输入gdb  application

   提示

“Type "apropos word" to search for commands related to "word"...
Reading symbols from demo...done.”

表示加载成功;

 

3. 调试界面输入:

r (run) 开始运行

b  设置断电

p /a +地址:展开地址的内容

......

 

例子:

命令格式:x/nfu <addr>

如:

(gdb)x/1xb 0x7fffffffd708

 

 x : examine 的缩写

 

n : 表示要显示的内存单元个数

f : 表示显示方式, 可取如下值
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值