2013-08-16 58 views
2

我想在3-4天内设置我的调试器在Qt中没有成功。
我有Qt编译器2.7.0与编译器MINGW和Windows 7上的调试器gdb.exe
我建立在调试模式,调试器正在跳过断点。 ! 预先感谢您的任何提示 [QT设置] [1]
这是调试器输出的样子:
QtCreator 2.7不加载调试符号,它跳过断点

sSetting breakpoints... 
dSetting breakpoints... 
dATTEMPT BREAKPOINT SYNCHRONIZATION 
dTAKING OWNERSHIP OF BREAKPOINT 1 IN STATE 0 
<53-break-insert -f "\"onmainwindow.cpp\":333" 
dBREAKPOINTS ARE NOT FULLY SYNCHRONIZED 

dATTEMPT SYNC 
dATTEMPT BREAKPOINT SYNCHRONIZATION 
dBREAKPOINTS ARE NOT FULLY SYNCHRONIZED 

>&"No source file named onmainwindow.cpp in loaded symbols.\n" 
>53^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="\"onmainwindow.cpp\":333",times="0"} 
<54-break-delete 1 


>54^done 
<55-break-insert -f "\"onmainwindow.cpp\":333" 


>&"No source file named onmainwindow.cpp in loaded symbols.\n" 
>55^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="\"onmainwindow.cpp\":333",times="0"} 
dATTEMPT BREAKPOINT SYNCHRONIZATION 
dBREAKPOINTS ARE SYNCHRONIZED 
dALL COMMANDS DONE; INVOKING CALLBACK 
<56maint print msymbols C:/Users/Lucian/AppData/Local/Temp/gdb_ns_.Ae4844 


>&"maint print msymbols C:/Users/Lucian/AppData/Local/Temp/gdb_ns_.Ae4844\n" 
>56^done 
dFOUND NON-NAMESPACED Qt 
dNOTE: INFERIOR SETUP OK 
dState changed from InferiorSetupRequested(4) to InferiorSetupOk(6) [master] 
dState changed from InferiorSetupOk(6) to EngineRunRequested(7) [master] 
dQUEUE: RUN ENGINE 

dCALL: RUN ENGINE 
<57-exec-run 

>57^running 
dNOTE: ENGINE RUN AND INFERIOR RUN OK 
sRunning. 
dState changed from EngineRunRequested(7) to InferiorRunOk(11) [master] 
dINFERIOR STARTED 
sApplication started 


>~"[New thread 7144.0x1fdc]\n" 
dFOUND PID 7144 
dTaking notice of pid 7144 
s[New thread 7144.0x1fdc] 
>~"(no debugging symbols found)\n" 
>~"(no debugging symbols found)\n" 
>~"(no debugging symbols found)\n" 

我还安装了新的gdb调试器,它也多恩斯;吨停止AR断点,这个新版本的gdb输出:

dATTEMPT SYNC 
dATTEMPT BREAKPOINT SYNCHRONIZATION 
dBREAKPOINTS ARE NOT FULLY SYNCHRONIZED 
>&"No symbol table is loaded. Use the \"file\" command.\n" 
>200^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="`<PENDING>",pending="\"onmainwindow.cpp\":55",times="0",original-location="\"onmainwindow.cpp\":55"}` 

,我注意到一个有趣的事情是:
虽然调试版本具有以下配置:
qmake.exe D:\ Elance \ X2GoClient \ sources_v2.0 \ x2goclient.pro -r -spec win32-g ++“CONFIG + = debug”“CONFIG + = declarative_debug”
然后运行第2步:make:C:\ MinGW的\ BIN \的mingw32-的make.exe
其中CINFIG + =调试用于调试
调试输出窗口中提到表明我:

20:11:11: Configuration unchanged, skipping qmake step. 
20:11:11: Starting: "C:\mingw\bin\mingw32-make.exe" 
C:/mingw/bin/mingw32-make -f Makefile.Release 

是显示: 使-f Makefile.Release ..这是非常奇怪的 是否可以显示正在使用发布的makefile构建? 感谢

+1

一个可能的原因:您的二进制文件和源代码不同步。当您编辑源代码时不重新编译时会发生。如果这是唯一可能的解释......不知道。 – Greenflow

回答

0

好吧,这可能会为别人有用: 我有上述问题并解决它这个变化:

步骤1(这个问题我觉得是有关Qt Creator的,我认为这是建立与配置-release,而不是配置-debug和释放标志)

I altered the x2goClient.pro like: 
**BEFORE:** 
win32-* { 
message(building $$TARGET for windows without ldap and cups) 
LIBS += -lwinspool -lws2_32 
    CONFIG += static release 
} 
**AFTER:** 
win32-* { 

message(building $$TARGET for windows without ldap and cups) 

LIBS += -lwinspool -lws2_32 

    CONFIG += static debug 
} 

步骤2(我认为由于这样的事实,Qt的可能编译错误,默认的make.exe步骤解释为化妆 - f Makefile.release尽管我选择了Debug版本)

In projects->Build Steps->Make arguments 
I placed: -f Makefile.Debug 

第3步:做了这些更改后,我得到了一些与某些DLL有关的错误。有趣的是,由Qt生成的Makefile.Debug没有生成好,它包含了一些dll,如QtCored.dll,它没有出现在Qt中,我改变了它,因为我发现dll就像从QtCored.dll到QtCored4 .dll

第4步:似乎我所拥有的构建器和调试器不正确。我下载了最新的MingW并更改了BOTH构建器和调试器。第一次,我只改变了调试器,并得到“在启动程序退出代码0xc0000005”错误。当我改变最新的MingW的BOTH构建器和调试器时,它终于奏效了。 我现在在Qt上工作了2周,但是在我的生活中,我并没有遇到一些IDE问题。 Qt是好的,但配置有点顽固。

+0

如果这是最终解决方案,请将您的答案标记为已接受。 – krsteeve

相关问题