use*_*892 3 eclipse eclipse-cdt eclipse-mars
为什么stringsEclipse Mars CDT 中的值不会出现在表达式或variables窗口中?它出现{...}但我想在值选项卡下看到值本身.
我怎样才能做到这一点?
这里发生的事情是CDT正在展示GDB为其提供的信息.
对于一个简单的程序,调试器在返回0的行上停止;
#include <string>
using namespace std;
int main() {
string mystring = "my string here";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我在CDT变量视图中看到的:
这与我在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"}}
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑你想要的是libstdc ++的漂亮打印机,它使变量视图看起来像这样:
使用以下内容创建〜/ .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
Run Code Online (Sandbox Code Playgroud)
然后将启动配置指向该gdbinit文件并开始调试.