lem*_*erg 5 c debugging gdb endianness
假设我有一个像
char foo[] = { 0, 1, 1, 0 };
Run Code Online (Sandbox Code Playgroud)
在gdbx86机器上,如果我说
p (short[2])*foo
Run Code Online (Sandbox Code Playgroud)
我懂了
{256, 1}
Run Code Online (Sandbox Code Playgroud)
这就是说,两个字节short按小端顺序解释。
是否有一种方便的方法(例如宏)来使gdb字节数组显示为大端短(或其他类型)呢?
使用set endian big。用于set endian auto切换回自动字节序选择。
(gdb) p (short[2])*foo
$1 = {256, 1}
(gdb) set endian big
The target is assumed to be big endian
(gdb) p (short[2])*foo
$2 = {1, 256}
(gdb) set endian auto
The target endianness is set automatically (currently little endian)
(gdb) p (short[2])*foo
$3 = {256, 1}
(gdb)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |