----目前我正在开发BlockCache,在目前就遇到了cache和磁盘不一致的问题,这些问题可能导致了内核的错误,我采用回档的方式来定位导致错误的更改。
----因为在开发过程中,需要更改不少地方,所以回档的代价是很高的,所以这里我第一次感受到git的魅力,这里记录一下。
----其实git对代码版本的控制和游戏里面存档的原理是相似的。当你使用commit指令的时候,就相当于你对代码进行了一次存档,就像单机游戏存档一样,如果你玩过那种很难一遍过的单机游戏,你一定希望在打到一个很难打到的点时进行存档:
----如果你得到了一个稳定的版本,你可以使用commit进行存档:
----但是如果出现这种情况怎么办:
----这就好像你把游戏打崩了,但是又不舍得删掉这个存档一样,你可以选择先存档:
----然后再回档,这样你就回到稳定版本了:
----当然如果你想再品味一下答辩代码,只需要转换一下分支就行:
注意!!一定要新建一个分支再进行reset --hard操作!!!
否则答辩代码可能面临永久删除的风险!!!
-----------------------------------内核问题分割线----------------------------------------------
----我在开发过程中发现内核总是panic,我找不出原因,打算回档看看哪里出现了问题
----但是回档到稳定版还是panic,于是我回档到最一开始的版本(就是我一点修改都没有做的版本):
----但是内核还是报错:
----这是怎么回事??
附上报错信息:
[ DEBUG ] (src/net/net_core.rs:63) DHCP try round: 0
[ INFO ] (src/net/net_core.rs:90) Successfully allocated ip by Dhcpv4! Ip:10.0.2.15/24
[ DEBUG ] (src/init/initial_kthread.rs:48) initial kernel thread done.
Panic occurred: PanicInfo { payload: Any { … }, message: Some(create ctl pipe failed), location: Location { file: “src/systemctl/listener/mod.rs”, line: 97, col: 17 }, can_unwind: true }