簡體   English   中英

讓 Qt 調試器工作 (GDB)

[英]Getting the Qt Debugger to work (GDB)

我目前正在 Windows 7 上構建,並試圖讓我的調試器逐步執行我的代碼。 問題是,雖然我將構建配置設置為調試,並將我的CONFIG變量設置為在我的 QMake 文件中調試,但它仍然不起作用。

這是我的 QMake 文件:

TEMPLATE = app
CONFIG += console debug
CONFIG -= qt

QMAKE_CXXFLAGS += -g -gdb

SOURCES += main.c \
    Triangle.c \
    GlutTesting.c

HEADERS += \
    Triangle.h \
    Includes.h \
    GlutTesting.h

LIBS += -lSDL -lopengl32 -lfreeglut

請注意,它實際上是用 C 編寫並按原樣編譯的(所有文件都是本機 C 代碼,使用 MinGW 編譯)。

問題是每次我開始時,即使我設置了一個斷點,代碼實際上只是將它放大到應用程序當前設置的末尾並在那里停止。 現在幾乎不可能實際調試我的應用程序。

這里有什么問題? 每次我谷歌時,我都會找到一些關於“添加調試符號”的東西,這在 Linux 中很容易做到,但在 Qt Creator 中,它似乎是正確完成的 PITA(除非我只是遺漏了一些完全簡單的東西)。

使用 Qt Creator 2.5.0 在 Linux (Fedora 16) 上遇到類似問題

原來 gdb 在我的主目錄中啟動,無法(我不知道為什么)加載正在調試的庫的調試符號。 每當我強制 gdb 從放置庫二進制文件的目錄啟動時(在 Qt Creator 中,它是通過工具->選項->調試器->附加啟動命令中的附加調試器啟動命令完成的:只需將“cd”設置為目錄二進制文件)一切正常。

另一種解決方案是將環境變量 LD_LIBRARY_PATH 設置為包含二進制目錄的完整路徑。 在 Qt Creator 中,它是在項目->運行設置->運行環境中完成的。

為了檢查調試符號是否已正確加載,請通過 Window->Views->Debugger Log 打開 gdb log 並鍵入命令“info shared”。

這在 Linux 下對我有用,我不確定它是否可以在 Windows 下工作,但無論如何它都可以:

在 .pro 文件中,我添加了以下行:

CONFIG += debug

這啟用了 QT 系統內的調試。 然后我添加了以下內容:

QMAKE_CXXFLAGS += -O0 -g -ggdb

-ggdb 用於 gdb 支持。 並且 O(字母 O)0(數字零)沒有優化 - 以防止編譯器優化出變量。 這為我提供了在 Linux 下調試時所需的所有符號的回溯。 這是一個相當標准的 gdb 調試編譯選項。 但它可能已經被 CONFIG 中的調試選項覆蓋。

在 Linux 下,我也重建了項目:

make clean
make

但是對於 Windows,如果您使用的是 Visual Studio,則可能需要進行重建。 我不知道你的編譯工具鏈是什么。

我知道您使用的是 Windows,如果它也可以在 Windows 下運行,那么嘗試這些東西可能是值得的。 但是,即使它在 Windows 下不起作用,對於在 Linux 下搜索如何執行此操作的人來說也可能很有用,所以我認為這是一個有效的答案,即使它可能沒有專門回答這個特定問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM