我正在尝试调试没有可用源代码的程序,我需要查看它存储在std :: string中的内容。我一直在谷歌搜索并在这里查看,我发现了一些关于输出STL容器的信息,但所有这些都引用了变量,没有源或调试信息我只有类数据的内存偏移量。有没有办法做到这一点?
答案 0 :(得分:28)
每个std::string
实现都有一个指向其中某个原始字符的指针。对于g++ 4.x
,该指针位于字符串的偏移0
。
如果您知道该字符串位于例如0x7fffffffda88
,然后
print *(char**)0x7fffffffda88
是你需要的。
答案 1 :(得分:13)
也许最简单的选择是使用c_str
方法,如:
print myStr.c_str()