【问题标题】:eclipse CDT pretty-printing not working for stringseclipse CDT 漂亮打印不适用于字符串
【发布时间】:2017-07-13 03:24:16
【问题描述】:

我正在尝试让 gdb 漂亮打印在 eclipse 中工作,它似乎适用于所有 stl 元素和容器 std::string

基本上如果我有一个像这样的向量:

std::vector<std::string> m_vec = {"hello" , "world"};

向量的每个元素显示一个字符串,并显示诸如“hello”和“world”之类的内容。

但如果我有类似的代码

std::string m_string = "hello world";

m_string 显示为空,即使我可以对内容进行字符串操作。不知道为什么只有字符串会导致漂亮的打印问题。

任何帮助/指针将不胜感激。

已编辑

Few more details regarding the setup:
    IDE: Eclipse Luna 4.4.2
    Compiler: Cygwin g++ 5.4.0
    Debugger: Cygwin gdb 7.10.1
    phython : Cygwin phython 3.6

更新:不知道具体是怎么回事,但是windows重启解决了,现在可以在preety-print中看到字符串了。

【问题讨论】:

  • gdb pretty-print 在更高版本的 gdb 中已被弃用。请检查支持
  • @ChandrayyaGK 你从哪里得到关于 gdb 漂亮打印支持已被弃用的信息?
  • 看看here。看看这是否有帮助。
  • @AmeyaVS 在 CDT 源代码中。我使用 Ubuntu,不知道要安装的软件包。当我尝试远程调试一个 c 应用程序时遇到了类似的问题我没有得到控制权(类似于进入无限循环)当我对新版本的 gdb 使用较旧的 gdb 配置时。很抱歉没有得到信息源的确切链接,一旦我有会更新。谢谢
  • @ChandrayyaGK 请看here GDB 漂亮的打印在 GDB 8.x 版本中相当可用。

标签: c++ string eclipse gdb pretty-print


【解决方案1】:

要在 cygwin 中添加对 gdb 漂亮打印的支持,您需要以下可用文件: /usr/share/gdb/auto-load/usr/bin/cygstdc++-6.dll-gdb.py

它在 cygwin 包安装程序中的 gcc-debuginfo-5.4.0-1 包中可用。

注意:一旦包在 Cygwin 存储库中更新,这可能会中断。因此,您需要再次在Cygwin package search 中找到此文件。

更新:通过在 gdb 控制台中运行以下命令来检查 gdb 支持的 python 解释器的版本:

(cygwin console) $ gdb
(gdb) python
>import sys
>print(sys.version)
>end

您应该会看到类似这样的输出(在我的情况下,它默认为 python2.7 解释器):

2.7.13 (default, Mar 13 2017, 20:56:15)
[GCC 5.4.0]

【讨论】:

  • 这为我解决了一个类似的问题,在使用 Visual Studio Code 和 Cygwin 进行调试时,漂亮的打印不适用于 STL 容器。不过,Python 3.8 对我来说很好用。
猜你喜欢
  • 2014-01-24
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2017-08-11
  • 2014-07-01
  • 1970-01-01
  • 2011-06-26
相关资源
最近更新 更多