Eclipse / CDT使用远程调试进行漂亮打印

时间:2015-08-17 11:47:38

标签: c++ eclipse cross-compiling pretty-print gdbserver

我试图在Eclipse / CDT(Mars版本)中为STL对象添加漂亮的打印到ARM板中运行的远程调试应用程序。

我可以使用Eclipse和gdbserver成功调试我的应用程序。为此,我使用以下gdbinit文件:

set sysroot remote:/

然后我尝试按照Eclipse Wiki中的步骤进行STL结构的漂亮打印: http://wiki.eclipse.org/CDT/User/FAQ

我从SVN成功下载了文件,并将指示的行添加到我的gdbinit文件中,该文件变为:

set sysroot remote:/    
python
import sys
sys.path.insert(0, '/home/rvcpu/prettyprinting')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

当我启动调试会话时,我在gdb跟踪上收到以下错误:

418,226 12-gdb-set target-wide-charset UTF-32
418,227 12^done
418,227 (gdb) 
418,228 13-gdb-set dprintf-style call
418,228 13^done
418,228 (gdb) 
418,232 14source /home/rvcpu/CodeSourcery/Sourcery_G++_Lite/bin/gdbinit
418,232 &"source /home/rvcpu/CodeSourcery/Sourcery_G++_Lite/bin/gdbinit\n"
418,232 =cmd-param-changed,param="sysroot",value="remote:/"

我相信我必须以某种方式向GDB表明python脚本位于我的主机上,而不是目标。有谁知道怎么做?

谢谢, 伯纳

1 个答案:

答案 0 :(得分:0)

您应该将这些行添加到主机上的.gdbinit和python目录中,“libstdcxx”库也应该在主机上。 如果你在子目录“prettyprinting”中有python目录,你应该设置包含libstdcxx目录的目录。 所以如果你有打印机:

/home/rvcpu/prettyprinting/python/libstdcxx/v6/

你需要插入

/home/rvcpu/prettyprinting/python/

到.gdbinit的python代码中的sys.path。