【发布时间】:2016-10-12 22:25:25
【问题描述】:
QT 新手,我导入了一个别人制作的项目,它可以在 QT Creator 的 MinGW 版本上编译和运行。但是它有一个小问题,如果我能看到调试输出,那将更容易诊断。
到处都有像“qInfo()
调试开始 调试完毕
我尝试过的:
确保使用的工具包是安装时附带的 QT 调试器和 mingw
在 main.cpp 的顶部放置一个 ifdef,并带有“#undef QT_NO_INFO_OUTPUT”
在所有头文件中添加了包含 QtDebug
还是什么都没有。
我做错了什么?
请记住,我是 Qt 的新手,也许我所说的其中一件事我已经尝试过我没有正确实施:S
谢谢!
【问题讨论】:
-
暂时忘记调试信息,看看你能不能get the debugger set up。使用调试器,您可以逐行遍历代码(甚至可能向后退一步)并准确查看发生了什么。比使用调试语句玩游戏更有效率。
-
我实际上有这个工作,似乎一个指针在某个地方被设置为零,当它稍后实际需要时。我只是不知道在哪里,我怀疑当它发生时,其中一条调试消息可能会说明原因
-
可能,但您还应该能够设置一个断点,当指针更改时将停止程序。 Link to command line GDB watchpoint setup,但 QT 创建者可能会有一个 GUI,使设置更容易。
-
你的意思是添加数据断点吗?不知道你能做到这一点,玩过它,它似乎在请求授权访问谷歌驱动器的功能的最后启动。也许只是超出范围?我认为这只是未能获得身份验证,但我正在努力寻找原因。后退一步会很方便,但我看不到这样做的选项?
-
数据断点听起来不错。倒退是很少见的。有些 gdb 实现有它,有些没有。 Ant 是函数的最后部分,但是......您的指针是否在函数内部作用域并且丢失了?您是否可能超出堆栈并使返回变得混乱?需要代码告诉。
标签: c++ qt qt-creator qdebug