首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt Creator忽略断点

Qt Creator忽略断点
EN

Stack Overflow用户
提问于 2013-06-02 17:59:05
回答 3查看 3.4K关注 0票数 4

我用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:

代码语言:javascript
复制
 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<  

.cc.o:

代码语言:javascript
复制
 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<  

.cxx.o:

代码语言:javascript
复制
 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<  

.c.o:

代码语言:javascript
复制
 $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<  

构建规则

第一个:全部

全部: Makefile.Debug $(DESTDIR_TARGET)

$(DESTDIR_TARGET):$(对象)

代码语言:javascript
复制
 $(LINK) $(LFLAGS) -o $(DESTDIR\_TARGET) $(OBJECTS)  $(LIBS)  

qmake: FORCE

代码语言:javascript
复制
 @$(QMAKE) -spec ......\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++ CONFIG+=declarative\_debug -o Makefile.Debug ..\PasswordGuess\PasswordGuess.pro  

dist:

代码语言:javascript
复制
 $(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

代码语言:javascript
复制
 -$(DEL\_FILE) debug\main.o  

distclean:清理

代码语言:javascript
复制
 -$(DEL\_FILE) $(DESTDIR\_TARGET)
代码语言:javascript
复制
 -$(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:

代码语言:javascript
复制
 -$(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

代码语言:javascript
复制
 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o ..\PasswordGuess\main.cpp  

安装

安装:强制

卸载:强制

力:

EN

回答 3

Stack Overflow用户

发布于 2014-10-28 18:35:43

在Projects->Run下禁用终端中的 Run标志。

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

票数 1
EN

Stack Overflow用户

发布于 2013-06-02 18:05:05

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

票数 0
EN

Stack Overflow用户

发布于 2015-05-28 21:30:06

在CMAKE_BUILD_TYPE情况下,Linux (Linux)将这一行添加到CMakeLists.txt。对于windows,需要在.pro文件中设置调试关键字。

否则,您也可以简单地设置cmake命令-DCMAKE_BUILD_TYPE=Debug,这是最好的解决方案。

参考.pro file settings

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16881693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档