字符串的值不为';t出现在eclipse火星CDT中

字符串的值不为';t出现在eclipse火星CDT中,eclipse,eclipse-cdt,eclipse-mars,Eclipse,Eclipse Cdt,Eclipse Mars,为什么Eclipse Mars CDT中的字符串的值没有出现在表达式或变量窗口中? 它显示为{…},但我想在“值”选项卡下查看值本身 我怎样才能做到这一点?这里发生的是CDT正在显示GDB提供给它的信息 对于普通程序,调试器在返回0的行上停止 #include <string> using namespace std; int main() { string mystring = "my string here"; return 0; } 然后将启动配置指向该gd

为什么Eclipse Mars CDT中的
字符串
的值没有出现在表达式或
变量
窗口中? 它显示为
{…}
,但我想在“值”选项卡下查看值本身


我怎样才能做到这一点?

这里发生的是CDT正在显示GDB提供给它的信息

对于普通程序,调试器在返回0的行上停止

#include <string>
using namespace std;

int main() {
    string mystring = "my string here";
    return 0;
}
然后将启动配置指向该gdbinit文件并开始调试

  • 关于主题的GDB wiki条目:
  • GCC手动输入:

它可能被截断了,请看,当我右键单击“值”部分时,我看不到“最大长度”或“更改值”选项。如何在Windows中运行Eclipse CDT时使其工作?(compiler is mingw)@jose.diego它的工作原理应该与在Windows中相同,假设您使用的是启用python的gdb(默认情况下,afaik mingw和msys2都启用),您可能需要将路径更新到正确的路径。如果这不起作用,请发布一个新的答案,显示您在eclipse cdt标记中遇到的错误,我们可以在那里解决。看起来我必须这样做:我的mingw发行版中没有python二进制文件,所以我将尝试使用我这里的一个独立python版本
(gdb) p mystring 
$1 = {static npos = <optimised out>, 
  _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
    _M_p = 0x602028 "my string here"}}
python
import sys
sys.path.insert(0, '/usr/share/gcc-4.8/python/')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end