我试图弄清楚这一点,因为我正在尝试用一个自制的脚本做同样的事情(希望如此):
示例 C 代码:
typedef struct _B
{
A aa;
double b;
char c[LEN];
int d;
char *a_ptr[10];
} B;
B this_b;
如果我用它gcc -g
和gdb a.out
之后编译它,gdb
确切地知道是什么和在哪里a_ptr
:
(gdb) p &(this_b.a_ptr)
$1 = (char *(*)[10]) 0x804a084
它是怎么做到的?我可以通过其他实用程序做同样的事情(知道它的地址和类型)吗?