【问题标题】:How to solve Qt Creators variable-"<not accessible>" behavior?如何解决 Qt Creators 变量-“<不可访问>”行为?
【发布时间】:2018-11-11 20:23:07
【问题描述】:

我遇到了与Variables in Locals and Expressions not accessible in QT Creator 中描述的相同的问题,但我想找到一种方法来“修复”Qt Creator,再次在调试窗口中显示 std::string 等默认复合类型。

我已通过 dist 升级 (fedora 18=>20) 从 Creator 2.8 更新到 3.0,我知道那里可能会出错,但我真的想避免仅为 Qt Creator 重新安装整个操作系统。

有什么方法可以让 Creator 更详细,还是写入日志文件?

Qt Creator 3.0 是否会为复合类型显示不错的值?

我可以检查哪些组件以及如何检查?

【问题讨论】:

  • 使用 eclipse-cdt 作为调试器。

标签: c++ qt qt-creator fedora


【解决方案1】:

不幸的是,这只是一种解决方法(但我会尽快写更多),但 this 帖子指出我只是在 Tools-> 中禁用“加载系统 GDB 漂亮打印机”选项->调试器->GDB

此行为是 QtCreator 3.0 中的 filed bug

现在似乎对我有用!

编辑:尽管 QtCreator 3.0 的错误跟踪器说该错误已得到修复,但该错误实际上在以后的版本中仍然存在 - 至少从 v3.1.2 开始。幸运的是,同样的建议解决方法也适用。

【讨论】:

  • 在我使用 QT Creator 3.1.2 的情况下,字符串问题仍然存在。右键单击变量名称并选择Change local display format-&gt; Raw structure 描述here 解决了问题。
  • 4.5.1 (Win10) - 还是同样的问题!
  • 这种行为在 Qt Creator v4.7.0 中仍然存在
【解决方案2】:

适用于更新到 Qt 5.11.2 和使用 CDB 的 windows 用户。

在安装程序(Qt 维护工具)上,确保选中“Qt -> Qt 5.11.2 -> Qt 调试信息文件”。 (在以前的版本中没有这样的选项)。

【讨论】:

  • -1 OP 要求标准 C++ 类型,例如 std::string。 Qt 调试信息文件是 1) 巨大的(几千兆字节!)在磁盘空间方面和 2) 需要深入调试实际的 Qt 库(如果我们采用 OP 的 std::string 在这种情况下我们正在谈论 QString )。
【解决方案3】:

Fedora 使用 rpm 进行包管理 - 使用它。重新安装整个操作系统是没有意义的,它是cargo cult IT。如果你运行rpm -Va,你可以验证包是否没有损坏,这就是你真正需要的。

Creator 具有特定于 Qt 版本的调试助手,也许它们没有扩展到 C++ 标准库。

要确保构建任何可用的帮助程序,请转到 Preferences -> Build&Run -> Qt Versions。对于每个 Qt 版本,转到 Helpers 窗格的详细信息,然后单击 [Build All]

【讨论】:

  • 好吧 - 我的问题是我使用了包管理,现在我正在寻找一种方法来解决dist升级带来的问题没有 “货物崇拜 IT”(重新安装)。
  • 顺便说一句。 rpm -Va(这是你的意思吗?)在所有软件包 qt-creator 或 qt-devel 上取决于返回的无结果。
  • @frans 很好,这意味着这些包是完整的。构建调试助手,这就是所有要做的事情。正如我所说,调试助手仅适用于 Qt 类型 IIRC,C++ 库类型应该由调试器本身支持,您希望如此。
猜你喜欢
  • 2017-06-15
  • 2018-08-12
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多