【发布时间】:2013-05-28 17:10:42
【问题描述】:
我在 Qt 中创建了一个简单的控制台应用程序。这是它的源代码:
当我从主菜单使用功能 Debug -> Start Debugging -> Start Debugging 时,应用程序运行并将消息“Hello world”打印到控制台。但是调试器会忽略在第 6 行设置的断点(从上面的截图可以看出)。
附加信息: QT Creator 版本 - 2.4.1 QT 库版本 - 4.8.1(但也有 4.7.4 安装在单独的目录中)
项目构建设置如下:
工具中的工具链设置 -> 选项:
GDB 可执行文件存在于目录“E:\QtSDK\pythongdb\python_2.7based”中,这表明我在调试类似的基于 GUI 的 Hello World 程序时没有问题。
GDB 设置:
是不是我做错了什么?
附:这是我的编译输出:
这是 Makefile.debug 的内容:
################################################# #####################生成文件:PasswordGuess
由 qmake (2.01a) (Qt 4.8.1) 于:ne 28. 4 18:12:57 2013 生成
项目:..\PasswordGuess\PasswordGuess.pro
模板:应用程序
################################################# ##################### # 编译器、工具和选项CC = gcc
CXX = g++
定义 = -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT
CFLAGS = -g -Wall $(DEFINES)
CXXFLAGS = -g -frtti -fexceptions -mthreads -Wall $(DEFINES)
INCPATH = -I"......\QtSDK\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"......\QtSDK\Desktop\Qt\4.8.1\mingw\包括"-I"......\QtSDK\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"debug" -I"..\PasswordGuess" -I"." -I"......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++"
链接 = g++
LFLAGS = -Wl,-子系统,控制台 -mthreads
LIBS = -L"e:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" -lQtCored4
QMAKE = e:\qtsdk\desktop\qt\4.8.1\mingw\bin\qmake.exe
IDC = e:\QtSDK\Desktop\Qt\4.8.1\mingw\bin\idc.exe
IDL = 中间
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
复制 = 复制 /y
SED =
COPY_FILE = $(COPY)
COPY_DIR = xcopy /s /q /y /i
DEL_FILE = 删除
DEL_DIR = rmdir
移动 = 移动
CHK_DIR_EXISTS= 如果不存在
MKDIR = mkdir
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
OBJECTS_DIR = 调试
# 文件来源 = ..\PasswordGuess\main.cpp
对象 = 调试/main.o
距离 =
QMAKE_TARGET = 密码猜测
DESTDIR = debug\ #避免尾部斜线换行
目标 = PasswordGuess.exe
DESTDIR_TARGET = 调试\PasswordGuess.exe
.后缀:.cpp .cc .cxx .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $
# 构建规则
首先:全部
全部:Makefile.Debug $(DESTDIR_TARGET)
$(DESTDIR_TARGET): $(OBJECTS)
$(LINK) $(LFLAGS) -o $(DESTDIR_TARGET) $(OBJECTS) $(LIBS)
qmake: 强制
@$(QMAKE) -spec ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile.Debug ..\PasswordGuess\PasswordGuess.pro
分布:
$(ZIP) PasswordGuess.zip $(SOURCES) $(DIST) ..\PasswordGuess\PasswordGuess.pro ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\qconfig.pri ... ...\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\modules\qt_webkit_version.pri ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\qt_functions.prf 。 .....\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\qt_config.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\exclusive_builds。 prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\default_pre.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\ win32\default_pre.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\debug.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\ mkspecs\features\debug_and_release.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\default_post.prf ......\QtSDK\Desktop\Qt\4.8.1\ mingw\mkspecs\features\win32\default_post.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\build_pass.prf ......\QtSDK\Desktop\Qt\ 4.8.1\mingw\mkspecs\features\win32\console.prf ......\QtSDK\桌面\Qt\4.8.1\mingw\mkspecs\features\declarative_debug.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\win32\rtti.prf ..... .\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\win32\exceptions.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\win32\stl。 prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\shared.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\ warn_on.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\qt.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\ features\win32\thread.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\moc.prf ......\QtSDK\Desktop\Qt\4.8.1\ mingw\mkspecs\features\resources.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\uic.prf ......\QtSDK\Desktop\Qt\4.8。 1\mingw\mkspecs\features\yacc.prf ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\features\lex.prf ......\QtSDK\Desktop\Qt\ 4.8.1\mingw\mkspecs\features\include_source_dir.prf HEADERS RESOURCES 图像源 OBJECTIVE_SOURCES 表单 YACCSOURCES YACCSOURCES来源
清理:compiler_clean
-$(DEL_FILE) 调试\main.o
distclean:清洁
-$(DEL_FILE) $(DESTDIR_TARGET)
-$(DEL_FILE) Makefile.Debug
检查:首先
mocclean:compiler_moc_header_clean compiler_moc_source_clean
mocables:compiler_moc_header_make_all compiler_moc_source_make_all
compiler_moc_header_make_all:
compiler_moc_header_clean:
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
编译器_uic_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
编译器清理:
调试/main.o:../PasswordGuess/main.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o ..\PasswordGuess\main.cpp
安装:强制
卸载:强制
力:
【问题讨论】:
标签: debugging qt4 qt-creator breakpoints