操作系统原理——实验二:进程创建_Debug

问题一:
在这里插入图片描述
解决办法:
删除注释“#”
在这里插入图片描述
问题二:
还没看到图形就黑屏了

可能的原因及对应解决办法:

  1. 图形模式mode不对,切换mode,查询系统支持的mode类型使用list_graphic_modes();
    在这里插入图片描述
  2. 过快地退出了图形模式:
    (1)exit_graphic();之前加上sleep()函数(单位秒),固定停留时间
    (2)将exit_graphic();放在主函数的while (1);后,永久停留
  3. 如果像下面这样定义了单位长度,需要考虑单位长度可能为0,导致无法画线,要么采用别的单位,要么选用更高像素的mode类型
    在这里插入图片描述

问题三:
在这里插入图片描述
在这里插入图片描述
可能原因及解决办法:

  1. 将调用的函数写在了头文件里面,如下
    在这里插入图片描述
    需要把这些文件放在Makefile项目文件中,比较复杂,更简单简单的解决办法是直接把调用的函数写在main.c文件里

  2. 在结构体变量中定义了指针变量,使用固定大小的数据替代即可

问题四:
修改之后仍然出现上次的问题

解决办法:
每次修改bug之后需要关闭QEMU。

问题五:
总是只执行一个线程

可能原因及解决办法:

  1. 定义栈指针时每个指针前都要加*
    在这里插入图片描述
    问题六:
    单个进程运行都没问题,一起运行总是会中间停止
    在这里插入图片描述
    可能原因及解决办法:
  2. 只定义了一个数组空间,在其中一个进程排序之后,该数组就已经是按序排列,其他进程调用的数组地址因为与其相同所以也退出进程不再运行,定义多个数组空间即可。

问题七:
各进程画线的颜色混乱,出现几个进程的颜色相同等等情况

可能原因及解决办法:

  1. swap函数颜色参数为数组导致,由于不断调用swap函数造成颜色地址混乱
    错误示例如下:
    在这里插入图片描述
    解决办法:
    在这里插入图片描述
    使用直接传数值的方式即可。

PS:如果对你有帮助的话,帮忙点个赞吧!有任何问题欢迎在评论区留言!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值