我正在使用 DWARF 和 ELF 信息的程序工作。我使用名为 Pin 的工具迷上了另一个程序。我有来自“Y”程序中声明的全局变量的地址,并将其连接到我将称为“X”的 Pin 模块中。
我得到了这些全局变量的一堆地址。不幸的是,当我尝试取消引用它们时遇到了麻烦。例如(现在我正在手动做事情,看看它是否在做应该做的事情):
char * limit, * address1;
for(address1 = (char *) 0x804A040, limit = address1 + bytesize; address1 < limit; address1++)
cout << *(address1) << "\n";
我应该得到存储在那个地址中的变量,它是char *
一个单词。在这种情况下我是否必须取消引用两个指针?地址,然后char *
存储在该地址中?
当我想取消引用一个变量时,这工作得很好int
,但是每当我尝试取消引用一个 char 指针或变量时,我都会得到non-ASCII
值......