24

我正在尝试调试一个没有可用源代码的程序,我需要查看它存储在 std::string 中的内容。我一直在谷歌搜索和查看这里,我发现了一些关于输出 STL 容器的信息,但所有这些信息都是指变量,没有源或调试信息,我所拥有的只是类数据的内存偏移量。有没有办法做到这一点?

4

2 回答 2

36

每个std::string实现都有一个指向其中某个地方的原始字符的指针。对于,该指针位于字符串g++ 4.x的偏移量处。0

如果您知道字符串位于 eg 0x7fffffffda88,那么

print *(char**)0x7fffffffda88

是你需要的。

于 2011-07-21T14:51:16.277 回答
26

也许最简单的选择是使用该c_str方法,如:

print myStr.c_str()
于 2016-08-05T13:29:32.563 回答