例如,默认情况下它会像
(gdb) print obj
$1 = {
elephant = 0xb7d28960 <_IO_2_1_stderr_>,
durian = 0x0,
eggplant = 0x809ed58 "",
peanut = 1080,
onion = 0x0,
ice = 0xb7d28c20 <_IO_2_1_stdin_>,
wheat = 0x0,
raspberry = 0x0
}
如何使其成为
(gdb) print obj
$1 = {
durian = 0x0,
eggplant = 0x809ed58 "",
elephant = 0xb7d28960 <_IO_2_1_stderr_>,
ice = 0xb7d28c20 <_IO_2_1_stdin_>,
onion = 0x0,
peanut = 1080,
raspberry = 0x0,
wheat = 0x0
}
即,数据成员按字母顺序列出。
感谢。
答案 0 :(得分:0)
没有办法在gdb中内置这个。
如果你真的需要这样做,你可以编写一些Python代码来打印你喜欢的对象。您可以编写一个类似print
的新命令,也可以编写一个识别结构并对成员进行排序的漂亮打印机。
也就是说,有两个理由让事情保持原样。首先,当前订单反映了源中实际写入的内容。其次,当前顺序还显示了对象内存中的布局。这两件事都有助于减少混淆。