网游活动专题站 - 新版本福利与赛事播报

  • 首页
  • 热门推荐
  • 版本速递
  • 赛事专区

最新发表

  • 《异次元大作战0元GM特权》五周年超时空庆典·全民GM权限限时开启活动
  • 家常大饼,软!越放越软!吕小厨版记录
  • 18元套餐全解析:资费、办理、避坑与热门推荐
  • 洛菲斯的呼唤:2025年5月22日全球玩家集结挑战赛
  • 魂斗罗归来哪个s英雄比较厉害
  • 暗夜行动:2025暗影降临全球争霸赛——跨时空裂隙挑战与不朽荣光之战
  • 王者荣耀暃的攻速暴击流打野如何出装
  • 《冒险大当家》2025年度全服跨服挑战盛典——荣耀之征·巅峰领主争霸赛
  • 战神之决战西伯利亚:冰雪王座争夺战——极限生存挑战赛
  • Qt版本的选择与安装

友情链接

Copyright © 2022 网游活动专题站 - 新版本福利与赛事播报 All Rights Reserved.

DevC++调试程序详解(图文并茂,新手必看)

赛事专区 · 2026-01-10 22:29:28

所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚地看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。

Dev C++ 作为一款免费、开源的 C/C++ IDE,内嵌了 GCC 编译器和 GDB 调试器,既能编译、运行程序,也能调试程序。

在学习如何程序调试之前,先创建一个用于调试的程序代码:

#include

#include // 包含字符串函数头文件

int main(int argc, char *argv)

{

printf("Hello World!\n");

// 添加代码开始

char *str = new char[100]; // 定义字符串变量

strcpy(str, "Hello Word!"); // 给字符串赋值

int s, a, b; // 定义整型变量

a = 5; // 赋初值

b = 10;

s = a + b; // 求和

printf("str:%s\n", str); // 输出字符串

printf("s:%d\n", s); // 输出求和结果

// 添加代码结束

return 0;

}

程序运行结果为:

Hello World!

str:Hello Word!

s:15

DevC++进入调试状态

默认情况下,程序会瞬间从开头执行到结尾,除非中途出现运行时错误。要想让程序暂停执行,就需要设置一个断点(BreakPoint)。可以把断点简单地理解成障碍物,汽车遇到障碍物不能通行,程序遇到断点就会暂停执行。

Dev C++ 中给程序设置断点的方法很简单。单击代码所在行的行号,即可添加一个断点,如下图所示。

图 1 添加断点

添加断点后,单击“编译运行”按钮运行程序时,断点不会生效。只有单击“调试”按钮运行程序时,断点才会生效。Dev C++ 中,与编译、运行、编译运行、调试相关的 4 个按钮如下图所示:

图 2 Dev C++中按钮作用

开始调试

调试是发现程序错误的有效方法。通过简单的调试操作,可以解决程序设计中出现的大部分错误。

单击“调试”按钮,或者按 Fn+F5 快捷键,程序开始执行,直到第7行代码处(当前行代码尚未运行)暂停,如下图所示。

图 3 开始调试

程序暂停执行后,借助调试窗口中的按钮可以查看某些变量的值,还可以控制编译器继续往下执行程序。调试窗口中部分常见按钮的用法如下:

“添加查看”按钮:查看某个变量的值,还可以看到值的变化情况;

“下一步”按钮:控制编译器向下执行一行语句;

“跳过”按钮:继续执行程序,遇到下一个断点暂停执行;

“停止执行”按钮:停止调试程序;

“单步进入”按钮:功能和“下一步”按钮类似,不同之处在于,当程序中调用某个自定义函数时,此按钮可以进入函数内部,继续调试函数内部的代码。

变量的跟踪与查看

设置断点后,进入调试运行状态。按 F7 键单步执行到变量所在代码行时,Variables 窗口中将显示当前代码行中变量的值,根据这个值可判断程序计算是否正确。

例如,循环输出一组数的累加和,代码如下:

#include

using namespace std;

int main(int argc, char *argv[])

{

int sum = 0;

for (int i = 0; i < 10; i++, i++)

sum += i;

cout << sum << "\n";

return 0;

}

设置断点于第 8 行“sum +=i;”语句,开始调试后,单击“添加查看”按钮,监视变量 sum 值的变化情况,如下图所示:

图 4 添加要监控的变量

初始状态下,变量 sum 的值为 0;

单击“下一步”按钮(或按 F7 键),执行第 8 行代码,箭头光标指向第 9 行,变量 sum 的值仍为 0。

再次单击“下一步”按钮,执行第 9 行代码,箭头指向第 6 行,变量 sum 的值仍为 0。

再次单击“下一步”按钮,执行第 6 行代码,箭头指向第 8 行,变量 sum 的值仍为 0。

再次单击“下一步”按钮,执行第 8 行代码,箭头指向第 9 行,变量 sum 的值变为 2,如下图所示:

图 5 监控变量

调试过程中,Dev C++ 支持同时监控多个变量,还支持在程序中设置多个断点,如下图所示。

图 6 多个断点和监控多个变量

调试的注意事项

程序修改后,调试之前一定要先进行编译。

Dev C++ 在 Windows 10 上的兼容性并不好,有时会出现各种问题。例如,某些版本的 Dev C++ 调试 C++ 程序时,遇到 endl 会出现“卡死”的情况,无法继续调试程序。遇到这种情况,最简单的解决方案是:将 endl 用 ‘\n’ 替换。


503 Service Unavailable: 服务不可用完美解决方法
氫分子劑量調整策略:如何提高劑量?