我正在使用最新的Qt SDK(2.4.0),并且在使visual studio 2008 CDB正常工作时遇到了问题。我有一个经验丰富的以下2个问题我认为是相关的
我有一个失败的断言。当断言失败时,我会看到Visual Studio对话框询问我是否要中止,重试或忽略。如果我选择重试,程序不会破坏,而只是继续执行。但是,如果我在断言之前设置断点,然后在调试器中跳过该行,那么当我点击重试时,程序会按预期断开。
正确命中执行开始前的所有断点。但是,如果我尝试在执行开始后添加断点,则忽略该断点。但是,如果停止时,我会添加更多的断点,然后正确击中它们。
看起来调试器只有在我用断点手动停止后才能工作。有谁知道这里发生了什么?
我正在使用适用于Windows 32的Windows 7 64位Qt SDK
答案 0 :(得分:0)
对于你的第一个问题,我猜你没有分配你使用的“对象”。 类似的东西:
//header file:
class Foo : blabla
{
public:
Foo();
private:
QSomething *m_fie;
};
//source file:
Foo::Foo()
{
m_fie->IWant2UseItNow();
}
如果您的调试器不起作用,您可以尝试添加:
#include <QDebug.h>
和几个打印字符串。即:
//source file:
Foo::Foo()
{
qDebug() << "1";
m_fie->IWant2UseItNow();
qDebug() << "2";
...
}
对于你的上一个问题,qtcreator可以帮助你减少工作量。它没有比其他IDE更好的东西,但它与qt集成。它可以帮助您避免大量的.pro文件配置。事实上,要正确调试您的应用程序,您应该在项目文件中定义:
CONFIG += debug_and_release
或至少:
CONFIG += debug
qtcreator为你做。