gdb - 这个 GDB 输出是什么意思?
问题描述
我有一个字符缓冲区,当我得到信息本地人时:
buf = "\310X\346\354\376\177\000\000E2\360\025\241\177\000\000pG\356\025\241\177\000\000\000\000\000\000\211\320\005\000\340G\356\025\241\177\000\000\000 \000\000\000\000\000\000 \247\244\025\241\177\000\000\000\243\341\021\000\000\000\000\030L\356\025\241\177\000\000W\220\244\025\241\177\000\000\032\000\000\000\000\000\000\000hJ\356\025\241\177\000\000hJ\356\025\241\177\000\000\241\005$\026"
我很困惑如何解释这个输出。我排除了成对的六进制数字(2 hexa = 1 字节)。怎么读?它甚至不是十进制表示法,因为有些大于 256。
解决方案
我很困惑如何解释这个输出。
默认情况下,GDB 以八进制形式打印不可打印的字符\310
,0xc8
. 缓冲区中的第一个字符是0xc8 0x58 0xe6 0xec ...
.
如果将缓冲区打印为十六进制,则解释缓冲区可能会更容易。用于x/20xb buf
检查前 20 个字符,或p/x buf
检查整个缓冲区直到终止NUL
。
推荐阅读
- excel - 将数据转换为表后 MATCH lookup_array 错误?
- macos - 运行 mix ecto.create 命令以在 Phoenix 项目中使用 brew 安装的 postgresql 创建数据库
- sql - 如何从 dolphindb 数据库中获取每组的最新 3 条记录?
- c++ - 在 C++ 中附加到地图时未指定矢量类型?
- javascript - 图例和饼图之间的谷歌饼图指向线
- python - 根据 groupby 条件删除 pandas 数据帧行
- c# - c# 交叉连接两个相同类型的列表
- c# - items.add,Visual Studio 抛出一个错误,说它“没有可用的扩展”
- flutter - 颤振状态管理
- kubernetes - 如何找到 pod 崩溃的原因?