字符串的值不会出现在eclipse mars CDT

时间:2015-09-05 08:39:01

标签: eclipse eclipse-cdt eclipse-mars

为什么Eclipse Mars CDT中strings的值没有出现在表达式或variables窗口中? 它显示为{...}但我希望在值选项卡下看到值本身。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

这里发生的事情是CDT正在显示GDB为其提供的信息。

对于一个简单的程序,调试器在返回0;

的行上停止
#include <string>
using namespace std;

int main() {
    string mystring = "my string here";
    return 0;
}

这是我在CDT变量视图中看到的:

cdt view of variable

与我在GDB中看到的相匹配:

(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"}}

Pretty Printing C ++

然而,我怀疑你想要的是libstdc ++的漂亮打印机,它使变量视图看起来像这样:

string pretty printed

使用以下内容创建〜/ .gdbinit文件(更新计算机的路径)

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

然后将启动配置指向该gdbinit文件并开始调试。