在gdb中,如何将指针指向文件特定的typedef

时间:2016-05-16 11:44:59

标签: c++ c gdb

我的文件a.cb.c有不同类型且名称相同:

交流转换器

struct map {
    int a;
}map_t;

//map_t * is use in file

b.c

struct map {
    int a;
    int b;
}map_t;

//map_t * is use in file

我需要什么? 在这里,我知道我想要在a.c或b.c文件中对特定map_t进行类型转换的堆地址。然后想要看到值a或a,b(取决于类型转换)。

e.g。

Address = 0x1000

我希望在a.c文件中以map_t定义的typedef格式看到此地址。 我在GDB中尝试了以下行,但无法找到符号a.c::map_t

(GDB) p *(('a.c::map_t'*)0x1000)
No symbol "a.c::map_t" in current context.

如何通过a.c文件中的map_t提示来对地址进行类型转换? 我也想知道如何在GDB中用Python做同样的事情。

注意:我知道哪种类型的内存地址(我的意思是来自a.c或b.c的map_t)。通过原始内存,我可以工作,但希望以适当的GDB格式查看。

0 个答案:

没有答案