加入收藏 | 设为首页 | 会员中心 | 我要投稿 莆田站长网 (https://www.0594zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

芯片如何走出“鸡生蛋”悖论?

发布时间:2021-02-07 16:03:25 所属栏目:评论 来源:互联网
导读:言归正传,CPU在执行这条int 3指令时,将自动触发中断处理流程(虽然这实际上不是一个真正的中断),CPU将取出IDTR寄存器指向的中断描述符表IDT的第3项,执行里面的中断处理函数。 而这个中断描述符表,早在操作系统启动之初,就已经提前安排好了,所以执行这

言归正传,CPU在执行这条int 3指令时,将自动触发中断处理流程(虽然这实际上不是一个真正的中断),CPU将取出IDTR寄存器指向的中断描述符表IDT的第3项,执行里面的中断处理函数。

而这个中断描述符表,早在操作系统启动之初,就已经提前安排好了,所以执行这条指令后,操作系统的中断处理函数将介入,来处理这一事件。

后面的过程就多了,简单来说,操作系统会把触发这一事件的进程冻结起来,随后将这一事件发送到调试器,调试器拿到之后就知道目标进程触发断点了。这个时候,咱们程序员就能通过调试器的UI交互界面或者命令行调试接口来调试目标进程,查看堆栈、查看内存、变量都随你。

如果我们要继续运行,调试器将会把之前修改的int 3指令给恢复回去,然后告知操作系统:我处理完了,把目标进程解冻吧!

上面简单描述了一下普通断点的实现原理。现在思考一个场景:我们发现一个bug,某个全局整数型变量的值老是莫名其妙被修改,但你发现有很多线程,很多函数都有可能会去修改这个变量,你想找出到底谁干的,怎么办?

这个时候上面的普通断点就没办法了,你需要一种新的断点:硬件断点。

这时候就该本小节的主人公调试寄存器登场表演了。
 

因此,为了提高生产率并加快软件开发过程,所有对开发必不可少的软件包都集成或组合到称为IDE(集成开发环境)的单个环境中,这使现代软件开发变得更加轻松快捷。典型的IDE必须具有一些功能,例如语法突出显示,自动代码完成,自动保存代码,代码搜索,编译器,重构,调试,版本控制,构建和部署等。如果您是C ++程序员,那么下面是一些免费的工具用于软件开发的IDE:

1.Visual Studio Code:

Visual Studio Code是由Microsoft开发的最受欢迎的免费开源代码编辑器,它支持Windows,Linux和Mac等平台。Microsoft提供扩展的C ++称为“Microsoft C / C ++”,这可以通过在扩展搜索可以容易地发现section.There是所谓的“代码转轮”另一扩展,它允许运行代码片段作为输出。

优点:免费使用;轻巧的;自动编码完成;语法高亮;命令行区域;调试器;主题和扩展;部署工具;Git支持。

2.Code :: blocks:

Code :: blocks是适用于C和C ++的开源免费IDE,可在多个平台上使用,并使用称为“ wxWidget”的GUI小部件工具在C ++中进行构建。该IDE特别用于具有平滑性能和功能的C ++编程。

优点:免费使用;跨平台;可扩展的插件;多编译器支持;性能非常快;调试器;可订制;良好的界面

3.Clion:

Clion是JetBrains开发的现代IDE,旨在在Windows,Linux和MacOS等各种平台上运行C和C ++。它提供了智能的代码辅助支持,因此主要重点必须放在重要的事情上。

优点:易于启动新项目;智能代码完成;简易调试;智能代码分析;内建工具

4.Eclipse:

Eclipse是C ++开发人员最流行,功能最强大的IDE之一。它也是开源的。它支持Windows,Linux和MacOS等多平台,许多用户发现它易于使用。

优点:易于使用;自动补全代码;开源的;源导航;语法高亮;视觉调试工具;代码重构

5.CodeLite:

CodeLite是使用最好的C ++ IDE之一,它是免费的,用C ++编写的开源代码,专门用于在Windows,MacOS,Linux等各种平台上运行。它还提供了许多C ++ IDE一样的功能。

优点:项目管理;代码完成;语法高亮;交互式调试器;代码重构;单元测试

(编辑:莆田站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读