【发布时间】:2016-10-27 07:28:21
【问题描述】:
我有一个用户定义的结构。
struct foo {
int bar1;
char *name;
user_type_t *tba;
}foo_t;
在 gdb 中,我有一个指向类型 foo_t 的地址。 例如 0xfe83ba56 指向内存中 foo_t 类型的结构。
我可以通过类型转换将该地址转换为 foo_t,然后我可以在需要时取消引用它。 (gdb) p (foo_t *)0xfe83ba56
如何在 gdb 中使用 python?如果我有一个已经指向 foo_t 类型对象的 gdb.Value 对象,那么我可以找到它的地址。但在这里,我试图将原始地址转换为 gdb.Value 对象。
我查看了https://sourceware.org/gdb/onlinedocs/gdb/Values-From-Inferior.html#Values-From-Inferior 和 SO 的“类似问题”部分的许多帖子,但找不到确切答案。
【问题讨论】:
-
我自己不知道这个问题的答案,但我突然想到自定义类型的打印机可能需要这样做,所以也许你可以通过查看自定义类型来弄清楚随附的打印机,例如libstdc++? gcc.gnu.org/git/?p=gcc.git;a=tree;f=libstdc%2B%2B-v3/python