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 函数开始逐步执行。(如下图所示)

若代码中存在断点,那么程序则会在运行到断点的时候,自动终止运行。从而允许开发者进行进一步的调试。

step1

如图所示,从该程序的第5行开始执行。

此时,点击单步跳过。程序则会执行这行语句(即第五行的代码),并执行下一行代码。

image-20220116160126699

如图所示,命令行终端中出现了

Hello C++!

同时程序执行到第七行。

对于循环语句,或是函数的调试,我们就可以用到单步进入这一功能。进入到语句的内部去执行代码。

同时,我也设置了一个表达式监视。不仅仅可以用来监视单一变量的数据,还能够通过设置不同的表达式内容,如i + j 等,来满足不同的调试需求。

表达式监视

点击单步进入。我们就能看到命令行窗口中输出了这样的内容。

单步进入输出

在点击了单步进入之后,我们便可以多次点击单步跳过来调试for循环中的语句。

image-20220116161224268

可是,如果循环次数过多,要通过多次点击单步跳过来退出循环就比较傻了。

这时就可以使用单步跳出继续执行功能,来跳出循环体或函数体。跳出后,程序会恢复正常运行。如果此后没有设置断点的话,程序则会自动退出。

所以,为了继续调试我们需要在函数体的后面设置一个断点。通过点击编辑器左侧的行数,就可以为这段程序设置一个断点。

image-20220116161721121

重新调试。程序在断点处自动终止。直到return语句执行,程序结束运行。

image-20220116161822476

image-20220116161837995

image-20220116161931441

调试至此结束。

程序输出

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.

posted @ 2022-01-16 16:52  zenor0  阅读(311)  评论(0编辑  收藏  举报