`
izuoyan
  • 浏览: 9220163 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

系统运行中进行调试修改的重要性--一个小故事

阅读更多

当一个系统已经在运行的时候,如果发现了一个bug怎么办?

好办,改了代码,扔上服务器重启服务呗。

可是,如果这个服务不能停呢?这里有一个实际的例子:

1998年时,NASA 在执行深空1号任务时,发现飞行器上一段控制实验用的lisp代码有一个竞争条件(race condition) 的bug ,在地面测试的时候没有捕获。此时已经距离发射一年半了,飞行器在 1亿英里之外的太空中。而这个程序可以在运行的时候,允许调试,并有一个REPL环境(Read-Eval-Print-Loop),这样程序员可以在地面远程(确实很远)连接到飞行器上正在运行的Lisp进程,调试修复代码。

一个程序员这样描述:调试一个一亿英里外价值一亿美元的硬件上的代码是很有趣的经历。

分享到:
评论

相关推荐

    王者荣耀故事站小程序带Vue后台-微信小程序源码.zip

    微信小程序源码"进一步确认了压缩包中的核心资源,即一个以"王者荣耀"为主题的故事分享小程序,该程序不仅有前端展示层,还有后端管理平台,两者都提供了源代码,使得开发者可以研究、学习或进行二次开发。...

    王者荣耀故事站小程序带Vue后台(源码).zip

    在游戏行业中,这样的小程序可能用于分享游戏故事、攻略、玩家互动等,为用户提供一个丰富的游戏周边体验。 【描述】:“王者荣耀故事站小程序带Vue后台(源码)” 描述简洁明了,表明这是一个包含完整源代码的...

    自己动手写操作系统(含源代码).part2

    有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。 本书面向实践,通过具体...

    自己动手写操作系统(含源代码).part1

    有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。 本书面向实践,通过具体...

    猪哥的嵌入式linux公房菜

    - **调试命令**:使用gdb进行单步调试、查看变量值等。 **11. GNU工具开发基于ARM嵌入式系统的方法** - **工具链构建**:选择合适的工具集。 - **项目管理**:使用Makefile等工具。 **12. 交叉平台开源编译系统: ...

    刘备学Android

    - **第1回:** 介绍了刘备决定学习Android开发的背景故事,从一个寓教于乐的角度切入,激发读者兴趣。 - **1.1 Android基本知识** - **1.1.1 Android的历史** - Android由Andy Rubin等人在2003年创立,最初的...

    c++游戏合集2.zip

    下面我们将深入探讨C++在游戏开发中的重要性、C++的特点以及游戏开发的基本流程。 C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。由于其高效、...

    react-ReactStorybook的快照测试

    快照测试是Storybook中的一个重要特性,它主要用于确保组件在不同状态下的渲染输出保持一致,从而帮助维护代码质量。接下来,我们将深入探讨React Storybook的快照测试及其相关知识点。 一、React Storybook基础 ...

    Linux下关于网络编程

    进程是操作系统中的一个重要概念,它是程序的一次执行过程。在UNIX/Linux中,每个进程都有一个唯一的PID(Process ID),并且有自己的虚拟内存空间。 #### 四、进程控制 **3.1 进程的建立与运行** - **3.1.1 进程...

    小工具类 iOS计算器 (源码).zip

    "软件"可能指的是整个计算器应用,而"插件"可能暗示这个计算器也可以作为一个组件集成到其他应用中,或者在主屏幕小部件的形式下使用。 【压缩包子文件分析】 1. **源码的重要性.txt**:这个文件很可能包含了关于...

    c#学习笔记.txt

    /* 你能看得出来,这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事,可不要奇怪。有很多人用程序来表述爱情,在其中我能看到有Money,有Girl,有一些还涉及到Sex,但是我没有找到Love,我始终相信...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    、列表中的[权限],指的是对某一个用户进行独立设计权限,他的权限不受等级组权限管理,可以自定义设置用户权限。 、列表中的[最后IP],点击该用户最后登录的IP可以限制该IP的访问,请谨慎。 2、用户组...

    WPF-批量文件重命名软件

    **WPF批量文件重命名软件** 是一款基于Windows Presentation Foundation(WPF)技术开发的实用工具,主要用于方便用户快速、批量地对大量文件进行重命名操作。WPF是微软.NET框架的一部分,它提供了丰富的用户界面...

    reveal.app 用于解析开源iOSapp结构

    在iOS开发领域,深入理解应用的内部结构和控件组成对于优化代码、调试以及学习新的编程技巧至关重要。"reveal.app"是一款强大的工具,专门用于解析开源iOS应用的结构,它可以帮助开发者直观地查看并理解应用的UI层次...

    微信HTML5在线朋友圈游戏源码带安装部署教程-中秋节知多少.zip

    游戏名称中的“中秋节知多少”暗示了游戏内容可能与中秋节的传统文化、习俗或故事相关,玩家可能需要回答关于中秋节的问题或完成与中秋节主题相关的小挑战。 【安装部署教程】 安装部署教程是源码包的重要组成部分...

    Objecive-C语法与iPhone开发入门

    当你调用一个方法时,实际上是向对象发送一条消息。例如,`[myObject doSomething]` 就是向`myObject`发送`doSomething`消息。 2. **类与对象**:Objective-C基于C语言,增加了类的概念。类是对象的蓝图,定义了...

    FreeSWITCH VoIP 实战文档下载

    通过对FreeSWITCH VoIP实战文档的深入解读,我们可以了解到FreeSWITCH不仅仅是一个强大的通信工具,更是一个具有丰富功能集和高度可扩展性的平台。无论是对于初学者还是资深开发者而言,这本书都是一本宝贵的参考...

Global site tag (gtag.js) - Google Analytics