优美地退出

仅提供查错思路,怎么改正还需自己理解nemu的框架,RTFSC!

启动nemu:make run

键入q后:

发现报错
(我之前以为是makefile的问题,查看native.mk后发现并不是)

查错

先找到main函数


查看:

结合之前的文档:init_monitor()函数:

engine_start()函数:

查看一下sbd_mainloop():


发现一个rl_gets()函数;

上网搜了一下,发现使用readline库
继续往下读发现一个结构体:cmd_table[]

往上翻找到:

这个结构体的定义值得学习一下,int (*handler) (char *) , 可以使用cmd_table[i].xxx(cmd_help,cmd_c,cmd_q)执行相应的函数,很妙

与在nemu运行时能够使用的命令契合

于是猜测:
通过readline()读入命令然后通过strtok()过滤空格,通过strcmp()将键入的命令与cmd_table[i].name进行对比然后执行相应函数,那么在我们键入q时就会调用cmd_q函数:

什么也不做只返回-1:

然后判断 if(cmd_q < 0){return;} , -1 < 0所以直接返回main函数了:

随后返回并调用 is_exit_status_bad() :(find搜索一下)

到这里应该了解了为什么会发生错误,main()函数返回了-1 , 自己理解并修改一下

2021 NEMU PA1 RTFSC 优美地退出相关推荐

  1. NEMU PA1实验思路

    NEMU PA1实验思路 版权归zzy所有,不许外传! 本文主要是提供PA1思路,为了避免踩了一堆坑而浪费时间.若想copy代码请移步他处,本文仅供学习交流用,谢谢! 阅读前请确保仔细阅读了PA1实验 ...

  2. 产业分析:2021中国股权投资动态

    导读: 2021年,回暖和关注创新成为创业投资(VC).私募股权投资(PE)市场的主基调.在新冠肺炎疫情逐渐得到控制和宏观经济持续恢复的背景下,2021年VC/PE市场新成立基金增长显著,投资数量和投 ...

  3. 中国黑色金属行业十四五产量需求及发展战略规划研究报告2021版

    中国黑色金属行业十四五产量需求及发展战略规划研究报告2021版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 [搜索 ...

  4. vagrant给vmbox创建虚拟机及docker安装mysql和redis

    一.安装vmbox和vagrant 1.下载地址 Vagrant: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64. ...

  5. 2022年财富世界500强研究报告

    第一章 排行榜概况 1.1 榜单简介 <财富>(Fortune Magazine)是一本由美国人亨利·卢斯创办于1930年(庚午年),主要刊登经济问题研究文章的杂志.现隶属时代华纳集团旗下 ...

  6. Python 核心编程(第二版)——网络编程

    1. 介绍 服务器是一个软件或硬件,用于提供客户需要的"服务".服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其它的请求. 2. 套接字:通讯端点 套接字是一种 ...

  7. 中国黑色金属行业产量需求与十四五战略规划报告2022版

    中国黑色金属行业产量需求与十四五战略规划报告2022版 --------------------------------------- [修订日期]:2021年12月 [搜索鸿晟信合研究院查看官网更多 ...

  8. linux查看snmp的端口号,Linux的snmp 详解

    1)配置snmp,编辑/etc/snmp/snmpd.conf 1.1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是 ...

  9. linux 查看snmp端口,linux下的snmp配置及获取信息测试

    1)配置snmp,编辑/etc/snmp/snmpd.conf 1.1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是 ...

最新文章

  1. 【廖雪峰python入门笔记】for循环
  2. 计算机进制转换图,计算机等级考试进制转换及常用函数
  3. 神经网络第五周tutorial解析
  4. [转]easyui datagrid 批量编辑和提交
  5. TroubleShoot
  6. 【进程】进程通信-共享内存
  7. 向上取整函数_向上取整函数ROUNDUP在BOM表里面的实际应用
  8. Java基础---File类,就是这么简单
  9. 我的FPGA入门学习计划
  10. 机器学习中树模型算法总结之 决策树(上)
  11. 刚知道,qq聊天的时候可以这么装逼
  12. 我的团长我的团第三集
  13. Python实现《都挺好》社交网络分析
  14. hash(哈希)是什么
  15. 在Ubuntu/Linux环境下开放3306端口
  16. 模拟电路50(开关电容滤波器)
  17. python rgb转整数,如何在Python中将RGB转换为CMYK和反之亦然?
  18. 在Ubuntu安装和使用Anbox完整说明(一种在Linux使用Android应用的方法)
  19. 什么是HashTable?HashMap和HashTable的区别
  20. 数据库如何修改编码格式?

热门文章

  1. springboot 自定义返回值处理器HandlerMethodReturnValueHandler
  2. 修改informix服务器端密码,window下安装informix
  3. SEO 前端如果做seo
  4. 人脉关系大检阅 chuangye
  5. 小米12sUltra什么时候发布 小米12sUltra配置如何
  6. HashMap和ArrayMap SparseArray
  7. python集合输出_Python之集合
  8. 批量提取多个excel文件指定单元格内容,并汇总到一个新excel文件里
  9. 《平白语录》-喜欢加班的程序员
  10. 团宝网,你的网站升级也太垃圾了