繁体   English   中英

如何让Qt Creator的调试器显示OS X中C ++向量的内容?

[英]How do I make Qt Creator's debugger show the contents of C++ vectors in OS X?

我正在编写一个广泛使用向量的程序,并且是第一次在Mac OS X 10.6.6上使用Qt Creator 2.0.1进行开发。

在调试时,我可以在Locals and Watchers窗口中看到文字和数组,但是一旦我扩展了一个向量,在这种类型为Student情况下,我得到了这个树:

替代文字

我正在使用的另一个人是在Ubuntu上使用相同版本的Qt Creator,可以很好地看到向量的内容。 我究竟做错了什么?

这是他的调试器:

替代文字

QtCreator 2.6支持Mac FSF GDB(7.5)支持。 FSF GDB支持python,它允许qtcreator正确显示QVector,QSet,QList,QString等。它可以从macports下载。

  1. 下载并安装macports(从这里下载http://www.macports.org/install.php
  2. 要安装FSF GDB 7.5:

      sudo port install gdb 
  3. 授予FSF GDB调试应用程序的权限:

     sudo codesign -s gdb-cert /opt/local/bin/ggdb 

    如果找不到gdb-cert,请单击下面的链接创建gdb-cert,然后按照“创建证书”的说明进行操作:

    http://sourceware.org/gdb/wiki/BuildingOnDarwin

    如果您不授予ggdb权限,您将获得:

      Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8)) 
  4. 在QtCreator中更改工具包调试程序 在此输入图像描述

    将路径从/ usr / bin / gdb更改为/ opt / local / bin / ggdb

  5. 默认情况下,FSF GDB无法正确处理断点,因为mac clang ++不会导出调试符号。 要导出调试符号,需要手动运行dsymutil。 幸运的是,在使用qmake链接程序后,可以自动运行dysmutil命令。 在.pro文件中添加以下行:

     macx { CONFIG(debug, debug|release) { QMAKE_POST_LINK = dsymutil \\"MyApp.app/Contents/MacOS/MyApp\\" } } 

您需要构建调试助手。 应该在工具 - >选项下...

构建调试助手后,您还可以可视化std :: string,QString和容器。

在您选择使用哪个版本的Qt的位置应该有一个重建按钮。

http://www.qtcentre.org/threads/31862-quot-No-valid-Qt-version-set.-Set-one-in-Tools-Options-quot-Windows-QtCreator

这两个答案是正确的:一个人不能在mac上使用基于python的调试助手,仍然有一个与Apple的gdb一起使用的C ++版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM