Qt Creator忽略了断点

时间:2013-06-02 09:59:05

标签: debugging qt4 qt-creator breakpoints

我在Qt中创建了一个简单的控制台应用程序。这是源代码:

enter image description here

当我使用函数Debug - >开始调试 - >从主菜单开始调试,应用程序运行并打印消息" Hello world"到控制台。但调试器会忽略第6行设置的断点(正如您从上面的屏幕截图中看到的那样)。

其他信息: QT Creator版本 - 2.4.1 QT库版本 - 4.8.1(但也有4.7.4安装在单独的目录中)

项目构建设置如下:

enter image description here

工具中的工具链设置 - >选项:

enter image description here

GDB可执行文件存在于目录" E:\ QtSDK \ pythongdb \ python_2.7based"调试类似基于GUI的Hello World程序没有问题。

GDB设置:

enter image description here

我做错了吗?

P.S。这是我的编译输出:

enter image description here

以下是Makefile.debug的内容:

################################################## #####################

用于构建的Makefile:PasswordGuess

由qmake(2.01a)(Qt 4.8.1)生成:ne 28. 4 18:12:57 2013

项目:.. \ PasswordGuess \ PasswordGuess.pro

模板:app

################################################## ##################### #编译器,工具和选项

CC = gcc
CXX = g ++
DEFINES = -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 \桌面\ Qt的\ 4.8.1 \ mingw的\包括" -I" ...... \ QTSDK \桌面\ Qt的\ 4.8.1 \ mingw的\包括\ ActiveQt可" -I"调试" -I" .. \ PasswordGuess" -I"" -I" ...... \ QTSDK \桌面\ Qt的\ 4.8.1 \ mingw的\ mkspecs \ WIN32-G ++"
LINK = g ++
LFLAGS = -Wl,-subsystem,console -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 = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
COPY =复制/ y
SED =
COPY_FILE = $(COPY)
COPY_DIR = xcopy / s / q / y / i
DEL_FILE = del
DEL_DIR = rmdir
MOVE =移动
CHK_DIR_EXISTS =如果不存在
MKDIR = mkdir
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)

# 输出目录

OBJECTS_DIR = debug

#文件

SOURCES = .. \ PasswordGuess \ main.cpp
OBJECTS = debug / main.o
DIST =
QMAKE_TARGET = PasswordGuess
DESTDIR = debug \ #avoid trailing-slash linebreak
TARGET = PasswordGuess.exe
DESTDIR_TARGET = debug \ PasswordGuess.exe

#隐含规则

.SUFFIXES:.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 $ @ $<

#构建规则

首先:全部 all:Makefile.Debug $(DESTDIR_TARGET)

$(DESTDIR_TARGET):$(OBJECTS)
    $(LINK)$(LFLAGS)-o $(DESTDIR_TARGET)$(OBJECTS)$(LIBS)

qmake:FORCE
    @ $(QMAKE)-spec ...... \ QtSDK \ Desktop \ Qt \ 4.8.1 \ mingw \ mkspecs \ win32-g ++ CONFIG + = declarative_debug -o Makefile.Debug .. \ PasswordGuess \ PasswordGuess.pro

DIST:
    $(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 \ Desktop \ 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 \功能\ 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标题资源图像来源目标_SOURCES形式YACCSOURCES YACCSOURCES LEXSOURCES

clean:compiler_clean
     - $(DEL_FILE)debug \ main.o

#p> 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:
compiler_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:
compiler_clean:

#编译

debug / main.o:../PasswordGuess/main.cpp
    $(CXX)-c $(CXXFLAGS)$(INCPATH)-o debug \ main.o .. \ PasswordGuess \ main.cpp

#安装

安装:FORCE

卸载:FORCE

FORCE:

3 个答案:

答案 0 :(得分:0)

听起来您的应用程序是在没有调试信息的情况下构建的。确保您正在构建Debug配置并使用-g标志(如果您使用的是MinGW)。

答案 1 :(得分:0)

项目 - >运行下禁用在终端中运行 标记。

禁用此选项后,仍可使用Qt Creator底部面板上显示的控制台输出成功调试项目。

答案 2 :(得分:0)

SET(CMAKE_BUILD_TYPE调试​​)在Linux的情况下将此行添加到 CMakeLists.txt 。对于Windows,您需要在.pro文件中设置 Debug 关键字。

此外,您还可以简单地设置cmake命令 -DCMAKE_BUILD_TYPE = Debug ,这是最佳解决方案。

参考.pro file settings