C\C++ IDE 比较以及调试

内容概要

这个作业属于哪个课程 2022面向对象程序设计
这个作业要求在哪里 2022面向对象程序设计寒假作业1
这个作业的目标 IDE 选择以及代码调试
作业正文 如下
其他参考文献 无

IDE 选择

在大一学习C语言的过程中已经有稍微接触了IDE的选择。

要做出IDE的选择就要首先明确自己的需求

大学阶段,要编写的程序大多都比较小。暂时较少地涉及到多文件的大项目。

所以目前这个阶段,需要的是一个轻量级,小巧,拥有简单的调试功能的IDE。

综合现在流行的IDE, 我列出了这个表格。

IDE名称 体积 配置难度 内置编译器 多文件编译 调试功能 自动补全 其他Feature
Visual Studio 巨大 无 msvc 一键 强大 有 IDE中的航空母舰
CLion 大 CMake配置 MinGW 一键 强 智能补全 Jetbrain家联动
Dev C++ 小 无 GCC 一键 拉胯 无 古老
VS Code 小 有一定要求 自定义 自己写配置文件 自己配置,略强 有 拓展性极强
有终端显示
小熊猫 Dev C++ 小 无 MinGW 一键 较强 有 一键试题集测试

综合以上因素,目前我所使用的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.

C\C++ IDE 比较以及调试的更多相关文章

  1. Python开发环境Wing IDE如何使用调试功能

    在使用Wing IDE开始调试的时候,需要设置断点的行,读取GetItemCount函数的返回.这可以通过单击行并选择Break工具栏条目,或通过单击行左边的黑色边缘.断点应该以实心红圈的形式出现: ...

  2. 关闭jetbrains ide support 正在调试此浏览器提示

    1 安装JetBrains IDE Support插件 插件地址 2 启用插件 3 设置访问端口 4 WebStorm中设置Live Edit 5 关闭"JetBrains IDE Supp ...

  3. 利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?

    以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File - ...

  4. pdb-不需要IDE也能调试

    python中有个pdb模块,使python代码也可以像gdb那样进行调试,一般情况下pdb模块可以在代码内直接使用,也可以通过命令行参数的形式添加该模块进行调试(python -m pdb file ...

  5. 使用 WebStorm IDE 调试 Pomelo 应用程序

    使用得心应手的IDE来开发应用程序,可以使我们的工作事半功倍.而调试则更可以让我们准确的定位BUG,发现问题.本文讲述如何使用 WebStorm 这个怪兽级JavaScript IDE来调试 Chat ...

  6. Python开发环境Wing IDE的Blender的Python代码调试技巧

    Wing IDE是一个集成开发环境,可用于开发.测试和调试为Blender编写的Python代码,Blender是一个开源的3 D内容创建系统.Wing IDE提供自动完成.调用提示.强大的调试器.以 ...

  7. Python开发环境Wing IDE如何进行命令行调试

    Wing IDE专业的调试探针提供了一种强大的方法来发现和解决复杂的错误.这很像Python Shell但允许用户直接参与进已经暂停的调试程序中: 通过键入在刚才发生异常的地方键入下列数值进行尝试: ...

  8. 痞子衡嵌入式:MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项(i.MXRT500为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项. 痞子衡前段时间写过一篇小文<为i.MXRT设计更 ...

  9. NodeJS的代码调试和性能调优

    本文转自我的个人博客. NodeJS 自 2009 年显露人间,到现在已经六个年头了,由于各种原因,中间派生出了个兄弟,叫做 iojs,最近兄弟继续合体,衍生出了 nodejs4.0 版本,这东西算是 ...

随机推荐

  1. 甘特图中与任务有关的操作(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 任务建好了不是马上就没事了,后面还有各种事,比如像我这种粗心的,冷不丁就会冒出个"通假字"什么的,难道 ...

  2. RegExp正则表达式(三)–js中正则表达式的定义

    在js中,RegExp正则表达式的定义有两种方式:一种是普通方式,另一种是构造函数方式.无论是那种定义正则表达式的方式,它们都会返回RegExp对象. 普通方式定义正则表达式的格式 语法: var 变 ...

  3. ReentrantLock可重入锁——源码详解

    开始这篇博客之前,博主默认大家都是看过AQS源码的~什么居然没看过猛戳下方 全网最详细的AbstractQueuedSynchronizer(AQS)源码剖析(一)AQS基础 全网最详细的Abstra ...

  4. 再识requests

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  5. 四、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-会话好友列表的实现

    会话好友列表的实现 1.项目引言 2.腾讯云后台配置TXIM 3.配置项目并实现IM登录 4.会话好友列表的实现 5.聊天输入框的实现 6.聊天界面容器的实现 7.聊天消息项的实现 8.聊天输入框扩展 ...

  6. ABP VNext框架中Winform终端的开发和客户端授权信息的处理

    在ABP VNext框架中,即使在它提供的所有案例中,都没有涉及到Winform程序的案例介绍,不过微服务解决方案中提供了一个控制台的程序供了解其IDS4的调用和处理,由于我开发过很多Winform项 ...

  7. SQL注入绕过

    空格字符绕过 %09 TAB建(水平) %0a 新建一行,换行 %0b TAB建(垂直) %0c 新的一页 %0d return 功能 %a0 空格 %00 /**/ /*!*/./*!50009*/ ...

  8. 【LeetCode】1182. Shortest Distance to Target Color 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典+二分查找 日期 题目地址:https://lee ...

  9. 【LeetCode】800. Similar RGB Color 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...

  10. 【LeetCode】932. Beautiful Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 构造法 递归 相似题目 参考资料 日期 题目地址:h ...