C\C++ IDE 比较以及调试
C\C++ IDE 比较以及调试
内容概要
这个作业属于哪个课程 | 2022面向对象程序设计 |
---|---|
这个作业要求在哪里 | 2022面向对象程序设计寒假作业1 |
这个作业的目标 | IDE 选择以及代码调试 |
作业正文 | 如下 |
其他参考文献 | 无 |
IDE 选择
在大一学习C语言的过程中已经有稍微接触了IDE的选择。
要做出IDE的选择就要首先明确自己的需求
大学阶段,要编写的程序大多都比较小。暂时较少地涉及到多文件的大项目。
所以目前这个阶段,需要的是一个轻量级,小巧,拥有简单的调试功能的IDE。
综合现在流行的IDE, 我列出了这个表格。
IDE名称 | 体积 | 配置难度 | 内置编译器 | 多文件编译 | 调试功能 | 自动补全 | 其他Feature |
---|---|---|---|---|---|---|---|
Visual Studio | 巨大 | 无 | msvc | 一键 | 强大 | 有 | IDE中的航空母舰 |
CLion | 大 | CMake配置 | gcc | 一键 | 强 | 智能补全 | Jetbrain家联动 |
Dev C++ | 小 | 无 | gcc | 一键 | 拉胯 | 无 | 古老 |
VS Code | 小 | 有一定要求 | 自定义 | 自己写配置文件 | 自己配置,略强 | 有 | 拓展性极强 有终端显示 |
小熊猫 Dev C++ | 小 | 无 | gcc | 一键 | 较强 | 有 | 一键试题集测试 |
综合以上因素,目前我所使用的IDE是 小熊猫 Dev C++,打算在这个寒假里逐步迁移到 VS Code(馋 VS Code 的多语言支持,和无敌的拓展性)
小熊猫 Dev C++ 是一名个人开发者在原版 Dev C++ 的基础上做改进,重新打包整合成的一个版本。实现了代码自动补全,增强调试功能,高DPI支持,试题集等特性功能。基本完善了原版的薄弱点,极大程度上提高了可用性。
而像是 Visual Studio 和 CLion 由于体积过于庞大,导致启动速度慢。每次写东西还要新建一个项目,流程过于繁琐。暂时不考虑这些IDE。
对于 VS Code 他主要是要自己去配置,太麻烦了。但是他的集成性非常高,短小精悍。我也非常馋他的多语言支持和云同步。但目前我还有几个问题没有解决,等到这些个问题能够基本解决的时候就迁移到 VS Code 上去了。
- 实现 C/C++ 的项目建立,多文件编译
- 程序汇编代码的调试
- VS Code 调试功能的实现
代码调试
小熊猫 Dev C++ 的调试提供了以下的功能。
- 断点
- 表达式监视
- 单步跳过
- 单步进入
- 单步跳出
- 执行到光标处
- 继续执行
- 停止执行
简单学习了一下 C++ 的代码编写,以下是测试用的代码。通过这个简陋的实例来演示一下小熊猫 Dev C++ 的调试功能。
#include <iostream>
int main(void)
{
std::cout << "Hello C++!" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cout << "For loop iteration:" << i << std::endl;
}
std::cout << "End of program." << std::endl;
return 0;
}
首先,点击绿色虫子按钮或按下F5启动调试。
如果程序中不存在断点,那么在启动调试之后,程序则会从 main 函数
开始逐步执行。(如下图所示)
若代码中存在断点,那么程序则会在运行到断点的时候,自动终止运行。从而允许开发者进行进一步的调试。
如图所示,从该程序的第5行开始执行。
此时,点击单步跳过
。程序则会执行这行语句(即第五行的代码),并执行下一行代码。
如图所示,命令行终端中出现了
Hello C++!
同时程序执行到第七行。
对于循环语句,或是函数的调试,我们就可以用到单步进入
这一功能。进入到语句的内部去执行代码。
同时,我也设置了一个表达式监视
。不仅仅可以用来监视单一变量的数据,还能够通过设置不同的表达式内容,如i + j
等,来满足不同的调试需求。
点击单步进入
。我们就能看到命令行窗口中输出了这样的内容。
在点击了单步进入
之后,我们便可以多次点击单步跳过
来调试for循环中的语句。
可是,如果循环次数过多,要通过多次点击单步跳过
来退出循环就比较傻了。
这时就可以使用单步跳出
或继续执行
功能,来跳出循环体或函数体。跳出后,程序会恢复正常运行。如果此后没有设置断点的话,程序则会自动退出。
所以,为了继续调试我们需要在函数体的后面设置一个断点
。通过点击编辑器左侧的行数,就可以为这段程序设置一个断点。
重新调试。程序在断点处自动终止。直到return语句执行,程序结束运行。
调试至此结束。
程序输出
Hello C++!
For loop iteration:0
For loop iteration:1
For loop iteration:2
For loop iteration:3
For loop iteration:4
For loop iteration:5
For loop iteration:6
For loop iteration:7
For loop iteration:8
For loop iteration:9
End of program.