gdb test

2023-11-01

gdb test

b main
b 8
b hello.cpp:9
b hello.cpp:add
tb 9
r (可以带参数)
c
n
s


bt


info b
info local
info args
info display
l
l hello.cpp:9




显示 表达式
显示 变量
p i
print/x i
print/x file::variable
print/x function::variable
如果是数组如:
int *arry = (int*)malloc(len *sizeof(int));
p *arry@len  //len是数组长度
$1 = {2,3,5,9}
静态数组,直接print 数组名


数据显示格式:
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。


查看内存
你可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示:
x/
n、f、u是可选的参数。
n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。
f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。
u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。
表示一个内存地址。
n/f/u三个参数可以一起使用。例如:
命令:x/3uh 0x54320 表示,从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十六进制显示。


display i
undisplay
delete display
disable display
enable display




(gdb) print {变量名}


一般情况下,打印并不存在问题。但当一个字符串比较长时,打印出来的内容不完整,内容的最后为"..."
可以看到print显示的内容最后为"..."表示显示的内容并不完整。
问题:


那如何才能将长字符串显示完整呢?如果字符串比较长,又是依据什么来显示字符串呢?




首先,猜测打印的是一个固定长度的字符串,如果超过了默认的最大长度,那只打印默认最大长度的字符串内容,并在其后显示"..."表示打印内容不完整。


那这里的默认最大长度是多少呢?


通过以下命令可以查看:


(gdb) show print elements  
Limit on string chars or array elements to print is 200.  
可以看到默认只会打印200个字符。这个可以通过前面的举例验证。
其次,如何更改打印的字符串长度值?


可以通过命令:


(gdb) set print elements 0  
(gdb) show print elements   
Limit on string chars or array elements to print is unlimited.  
使打印的字符串长度不受限制。当然这里你也可以设置一个你需要的合理值
使用set print elements [n] 来更改打印字符串的长度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gdb test 的相关文章

随机推荐

  • undefined symbol 问题解决记录(二)

    昨天上车自测本模块功能稳定性 顺便pull小弟分支 帮忙一起验证 结果小包上车后无法运行 一查发现一直报 undefined symbol XXXXXX 晚上下班后开始帮忙排查 今日记录以便后期回顾 前两年写过一篇关于undefined s
  • git clone 使用用户名和密码

    git clone 使用用户名和密码 一般git仓库的用户 都是用户名和密码登录 git clone命令如下 模板 git clone http 邮箱 或用户名 密码 仓库 git clone http username password
  • Java读取和写入Excel表格

    Java读取和写入Excel表格 1 绪论 2 JXL篇之程序范例 2 1 JXL 创建低版本Excel文件 2 2 JXL 读取低版本Excel文件 3 POI篇之程序范例 3 1 POI 创建低版本Excel文件 3 2 POI 读取低
  • 阿里云移动测试

    阿里云移动测试 买服务 上传APP 勾选需要的服务 提交之后 阿里云帮进行测试 这个是自动的还是人工的
  • [SQL]经典的sql语句

    一 基础 1 说明 创建数据库 CREATE DATABASE database name 2 说明 删除数据库 drop database dbname 3 说明 备份sql server 创建 备份数据的 device USE mast
  • getClass().getClassLoader()为null

    想获取resources下的文件 之前用过this getClass getClassLoader getResourceAsStream path 可以获取到 但最近的一个工程中需要在一个静态方法中获取该文件 没有了this 我直接用了C
  • Qt使用OpenGL实现立方体贴图

    效果如下 实现代码3个文件 TestWidget h TestWidget cpp main cpp TestWidget h ifndef TESTWIDGET H define TESTWIDGET H include
  • STM32F103-时钟树

    STM32F1 时钟树 参考 野火 零死角玩转STM32 F103指南者 时钟源 HSI 高速内部时钟 RC振荡器 频率为8MHz HSE 高速外部时钟 可接石英 陶瓷谐振器 或者接外部时钟源 频率范围为4MHz 16MHz LSI 低速内
  • redis 优缺点 使用场景

    1 使用redis有哪些好处 1 速度快 因为数据存在内存中 类似于HashMap HashMap的优势就是查找和操作的时间复杂度都是O 1 2 支持丰富数据类型 支持string list set sorted set hash 3 支持
  • BootStrap----table

    项目场景 需要涉及到BootStrap table表格的 因为最后也没有使用bootstrap 现在只是简单的整理一下搜集到的资料 问题描述 提示 对于参数信息的涉及和查阅 参考 8条消息 bootstrapTable常用参数与方法 王小小
  • ubuntu18.04在vscode中配置c++环境

    1 安装gcc g sudo apt install gcc sudo apt install g 检查是否安装成功 gcc verison g version 2 在vscode商店中安装c 插件 3 在根目录创建 vscode文件夹 然
  • 常见查找算法-JAVA实现

    package org nxt algorithm search the bean of comparable author nanxiaotao public class ComparableBean implements Compara
  • csrf攻击原理及防范

    CSRF 全拼为 Cross Site Request Forgery 跨站请求伪造 CSRF指的是攻击者盗用了你的身份 以你的名义发送恶意的请求 给你造成个人隐私泄露及财产安全 CSRF攻击的原理 用户正常登录A银行网站 A网站返回coo
  • k8s四层负载均衡之Service

    为什么要有Service 在kubernetes中 Pod是有生命周期的 如果Pod重启它的IP很有可能会发生变化 如果我们的服务都是将Pod的IP地址写死 Pod挂掉或者重启 和刚才重启的pod相关联的其他服务将会找不到它所关联的Pod
  • 【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇

    文章目录 引言 游戏规则 练习目标 步骤拆解 双方出拳 双方亮拳 判断胜负 判断输赢逻辑优化 具体实现 引入random模块 创建选项列表 验证用户输入 计算机随机选择 判断胜负关系 完整代码 运行示例 总结 结语 引言 石头剪刀布是一款经
  • 集成测试策略

    集成测试的基础策略有很多 通常分为两种 非增量式集成测试策略和增量式集成测试策略 第一种 非增量式集成测试策略 非增量式集成测试策略也叫做大爆炸集成 一次性集成 即在最短的时间内把所有的系统组件一次性集成到被测系统中 并通过最少的用例来验证
  • 【前端】如何像取数组一样地取对象

    目标 例如 a a b c 可以通过a 0 得到 a 那么info success text yes warning text wrong url home 能不能通过类似info 0 的方式对应到 text yes 呢 当然是可以的 实现
  • 金币问题解析

    金币问题 本人小白 望各位大佬批评指正 谢谢 题目 国王将金币作为工资 发放给忠诚的骑士 第一天 骑士收到一枚金币 之后两天 第二天和第三天 每天收到两枚金币 之后三天 第四 五 六天 每天收到三枚金币 之后四天 第七 八 九 十天 每天收
  • 利用油猴Tampermonkey自动登录

    当然也可以用 Chrome User Script Handler 插件 function 获取元素 function getElementByXpath path return document evaluate path documen
  • gdb test

    gdb test b main b 8 b hello cpp 9 b hello cpp add tb 9 r 可以带参数 c n s bt info b info local info args info display l l hel