我用Qt创建了一个简单的控制台应用程序。下面是它的源代码:

当我从主菜单使用function Debug ->开始调试->开始调试时,应用程序运行并将消息"Hello world“打印到控制台。但是调试器忽略了在第6行设置的断点(从上面的屏幕截图中可以看到)。
其他信息: QT Creator版本- 2.4.1 QT库版本- 4.8.1 (但在单独的目录中也安装了4.7.4 )
项目构建设置如下:

Tools -> Options中的工具链设置:

GDB可执行文件存在于目录"E:\QtSDK\pythongdb\python_2.7based“中,这是因为我在调试类似的基于图形用户界面的Hello World程序时没有任何问题。
GDB设置:

我是不是做错了什么?
附注:下面是我的编译输出:

以下是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++
定义= -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 $(定义)
CXXFLAGS = -g -frtti -fexceptions -mthreads -Wall $(定义)
INCPATH = -I"......\QtSDK\Desktop\Qt\4.8.1\mingw\include\QtCore“-I"......\QtSDK\Desktop\Qt\4.8.1\mingw\include”-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、-subsystem、控制台-mthreads
-lQtCored4 =-L“e:\QtSDK\桌面\Qt\4.8.1\mingw\lib”lib
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_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 =调试
文件
源= ..\PasswordGuess\main.cpp
对象= debug/main.o
DIST =
QMAKE_TARGET = PasswordGuess
DESTDIR = debug\ #避免尾部斜杠换行符
目标= 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 $@ $< 构建规则
第一个:全部
全部: Makefile.Debug $(DESTDIR_TARGET)
$(DESTDIR_TARGET):$(对象)
$(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\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 IMAGES SOURCES OBJECTIVE\_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES 清理: compiler_clean
-$(DEL\_FILE) debug\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.cppcompiler_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 安装
安装:强制
卸载:强制
力:
发布于 2014-10-28 18:35:43
在Projects->Run下禁用终端中的 Run标志。
禁用此选项后,仍然可以使用Qt Creator底部面板上显示的控制台输出成功调试项目。
发布于 2013-06-02 18:05:05
听起来您的应用程序是在没有调试信息的情况下构建的。确保您正在构建调试配置,并且使用了-g标志(如果您正在使用MinGW)。
发布于 2015-05-28 21:30:06
在CMAKE_BUILD_TYPE情况下,Linux (Linux)将这一行添加到CMakeLists.txt。对于windows,需要在.pro文件中设置调试关键字。
否则,您也可以简单地设置cmake命令-DCMAKE_BUILD_TYPE=Debug,这是最好的解决方案。
https://stackoverflow.com/questions/16881693
复制相似问题