NJU-ICS 2024学习随笔PA1
前言略,以此记录我在了解计算机的初次尝试
2024.9.11
已经做了几天了,PA0已经过去,正在做PA1
我好像是跳过了gdb部分的学习,所以我打算明天(或者后天)学习一下,然后解决运行指令make file
后直接q
会报错的bug
2024.9.12
很难绷的是,我之前直接cv他们的那个.vimrc的修改内容会各种报错,好像是“+”“-”“@@”不识别或者没有这个符号,删掉这些东西就可以了。
注释就用引号就可以,那没有报错的结果是这样:
(对不对我不知道哈,关于nju这么写的原因我也不知道,但是我觉得他们这么写一定有原因的,这个之后再说)
那就继续学gdb吧
虽然没学gdb,但是目前定位到会输出(nemu)的地方了,也在分屏的时候用了用tmux。
说实话不太好用,切换窗口或者执行指令需要前缀ctrl+b
,我觉得这个很不方便,明天研究研究有什么好用的东西不。
今天就到这里吧,明天白天还得继续和考研斗智斗勇。
2024.9.13
几经辗转算是解决了
列举一个我在这个过程中常用的指令
grep -r "whatever"
就是查找改目录下所有内含“whatever”的内容的文件地址,以及相关行内容
类似这种
那接下来讲讲:
“如何优美地退出”
首先用上述grep指令找到main函数在哪,用grep -r "int main"
可能稍微聪明一些,随之发现一个这样的东西:
进去之后发现整个代码的运行顺序
用同样的方式能找到engine_start
函数的位置以及is_exit_status_bad
函数的位置
可以用上述指令找到is_exit_status_bad
在哪里定义的
打开后发现
这里返回了一个!good
我的做法是删掉!
。这个对整个程序有什么影响,以及对不对我也不知道,之后再说。
然后报错就没有
2024.9.16
停更了两天
前天踢足球之前没热身大腿拉伤了,昨天在床上躺了一整天,今天好像还有点感冒。
做题也做得很慢,做着做着脑子疼,还非常容易走神。好在正确率还不错,如果考研也有这正确率就好了。
说说今天干了啥吧:
首先是继续往下看了,在看表达式求值的部分。想了想或许我应该把代码传到github上去,建了库,也试了试。但是传不上去,说是fatal: Could not read from remote repository
。
搜了搜,好像要重新生成密钥。有点麻烦,今天也想多睡会,就算了。
歇了。
2024.9.19
停了几天,一个是刚感冒好,多休息休息,一个是有点懒。
我今天发现我基础设施我跳过了,今天就开始写写基础设施。
单步执行
首先查到 strtok 的用法以及参数的解释,加上注释就可以看明白cmd_help
的第一句话了
就是获得第一个参数
接下来看一下文档中说的 sscanf 吧(确实是个好东西啊,之前都是cin惯了)
接下来要开始尝试写写了
首先是指令分割
获得第一个参数。
(但是这里注意以下,如果用户有更多的输入,即不合法的参数输入,应该check一下,所以一次获取两个参数来判断是否合法)
然后是正确输入的时候,调用cpu_exec
函数,参数为 n( n 的取值可以用 sscanf 从 arg 获得)。
若是没有任何参数,则视 n 为 1。
完整代码
今天就到这里吧,十一点半了,收拾收拾准备睡觉了。
突然不想睡了。我现在的主要问题是我在vim上复制之后没法到本地粘贴,我研究研究怎么搞,要不然全是截图太丑陋了。
如何在vim使用系统剪切板
12点多了,但是解决了,主要出现了一下问题:
1、输入指令vim --version | grep "clipboard“
时发现
~$ vim --version | grep "clipboard"
-clipboard +keymap +printer +vertsplit
+eval -mouse_jsbterm -sun_workshop -xterm_clipboard
发现 clipboard 前面是 -
2、输入指令sudo apt-get install vim vim-gtk3
但是我发现我这边出现了报错Temporary failure resolving 'mirrors.tuna.tsinghua.edu.cn'
。
我尝试了包括且不限于修改网络适配器,安装有关https的包(但是发现已经安装了)。。。
所以我尝试sudo apt-get update
,第一次失败了。重启后又试了一次,也失败了,但是我第二次调用就好了,我也不知道为什么,我什么都没做。。。。
再次输入指令sudo apt-get install vim vim-gtk3
,就更新成功了。
~$ vim --version | grep "clipboard"
+clipboard +keymap +printer +vertsplit
+eval -mouse_jsbterm -sun_workshop +xterm_clipboard
心累,不懂网络,也不懂技术,事情发生不知道什么原因。
但是之前看jyy的操作系统课说,计算机任何事情发生都能找到原因。
所以我希望后面我能懂,这些报错发生的原因是什么。