论坛首页> 三共建设

iEco集成开发环境的学习-调试-08

在软件开发中,开发人员为了解决程序存在的bug,除了通过程序的输出来判断执行过程之外,使用最多的方法就是软件调试。QtCreator包含非常丰富的调试功能,进入调试之后,会自动从代码编辑模式切换到调试模式,如图所示。要想程序能在调试模式下执行,程序必须是以“Debug”模式编译,否则程序无法调试,程序的编译模式可以通过构建套件选择区的构建方式来选择,一般有两种模式,分别是“Debug”和“Release”。调试模式下包括非常多的调试窗口,例如:执行堆栈、变量、寄存器、线程、模块等,可以从多个维度来查看程序执行情况。

调试程序



1.设置断点

为了掌握程序执行过程中,每个变量和数据的执行变化,可以在指定的代码行处设置断点,如果程序执行到断点处,会自动停止执行,开发人员可以根据程序执行的上下文来判断执行是否出现错误。在QtCreator中设置断点有以下几种方法:

Ø  在源代码编辑器中设置断点:在源代码中将光标定位到指定的源代码行,在该代码行所在行号的左侧区域,点击鼠标右键会弹出一个菜单,如图XX所示,选择“Set Breakpoint at Line”,即可设置断点。断点设置之后,行号的左侧会出现一个红色的圆形标记,标识断点设置成功。

Ø  在“Debug”文件菜单上设置断点:将光标定位到指定行,点击文件菜单“Debug -> Toggle Breakpoint  F9”的按钮,即可设置断点。该操作的快捷键是“F9”,可以直接在指定行使用快捷键设置断点。

Ø  在断点管理窗口中设置断点:当程序进入调试模式之后,会出现断点管理窗口,如图所示,该窗口会显示当前所有断点的状态,在断点窗口中右键点击,弹出上下文菜单,点击“Add Breakpoint…”按钮,弹出增加断点对话框按钮,如图XX所示,根据对话框页面的说明增加断点即可。



2.调试程序

设置断点之后就可以开始执行程序,以调试模式执行程序有两种方法,通过快捷键“F5”启动调试,或者点击套件选择区中的调试按钮(带虫子图标的执行按钮)。在程序性执行的过程中,如果碰到断点位置,程序就会自动停止。在调试工具栏上,QtCreator提供了几种常用的调试执行功能,如表所示:
表 常用的调试功能说明


3调试窗口

进入到调试模式之后,会出现很多的调试功能窗口来辅助显示调试信息,例如堆栈、变量、寄存器、线程、模块等,这些信息都通过调试窗口进行显示,如图所示,整个调试功能区的最上侧是功能条,左侧是当前的堆栈信息,右侧显示了当前的断点(Breakpoints)、线程(Threads)、模块(Modules)和源文件(Source Files)信息。

调试窗口


调试窗口的管理是通过Views控制。在调试的功能条上点击Views,可以看到调试窗口的列表,该列表包含了全部的调试相关窗口,如图XX所示:

选择调试窗口


调试窗口包括:查看局部变量、查看寄存器、查看表达式、执行堆栈、执行控制、断点管理、查看线程、查看模块和查看源文件。

1.  Breakpoints”:显示当前的断点列表,可以通过右键菜单,设置断点的状态(可用、不可用)、增加断点、删除断点、编辑断点等,如图XX所示。

2.  Debugger Log”:调试日志,可以在调试日志中执行调试器命令,该功能可以看做是调试的高级用法,类似在命令行下调试程序。

3.  Expressions”:查看表达式,可以直接计算表达式的结果并显示。

4.  Locals”:查看局部变量,根据当前程序所处的堆栈显示堆栈上所有的变量值。

5.  Modules”:查看模块,可以看到进程当前加载的动态库列表、在内存中的加载地址、动态库的路径等。

6.  Register”:查看CPU寄存器,根据当前程序执行的位置,显示当前寄存器的值。

7.  Source Files”:显示当前调试程序加载调试符号的源文件列表,可以快速跳转到指定的文件设置断点。

8.  Threads”:显示当前的线程数和线程编号。

9.  Edit”:显示当前调试的源代码编辑器。


编辑断点

全部回复

暂无更多回复内容