我使用指针来指定某种“共享内存”,我用它来 在不同进程/线程之间交换数据。现在我想要 共享缓冲区内容的十六进制转储。有谁知道该怎么做吗?
谢谢, R
当然使用强制转换:-) 该函数应该看起来像什么 像这样:
void Dump( const void * mem, unsigned int n ) {
const char * p = reinterpret_cast< const char *>( mem );
for ( unsigned int i = 0; i < n; i++ ) {
std::cout << hex << int(p[i]) << " ";
}
std::cout << std::endl;
}
然后使用中:
Foo * f = GetSharedFoo();
Dump( f, somesize );
其中 somesize 是您要转储的数量。
ReadProcessMemory
。我不知道 Linux 的等效项。
如果您使用的是 Microsoft Visual Studio,我编写了一个扩展来执行此操作。
检查这些链接:
https://www.vsdebug.pro/pages/docs/hexdump.html https://www.vsdebug.pro/pages/tutorials/dumpbuffer.html