Skip to content

Commit 0a1e1fa

Browse files
committed
debug
1 parent 99716d0 commit 0a1e1fa

File tree

3 files changed

+55
-13
lines changed

3 files changed

+55
-13
lines changed

.vscode/launch.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
// 使用 IntelliSense 了解相关属性。
3+
// 悬停以查看现有属性的描述。
4+
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "lldb",
9+
"request": "launch",
10+
"name": "Debug executable 'FileSystem'",
11+
"cargo": {
12+
"args": [
13+
"build",
14+
"--bin=FileSystem",
15+
"--package=FileSystem"
16+
],
17+
"filter": {
18+
"name": "FileSystem",
19+
"kind": "bin"
20+
}
21+
},
22+
"args": [],
23+
"cwd": "${workspaceFolder}"
24+
},
25+
{
26+
"type": "lldb",
27+
"request": "launch",
28+
"name": "Debug unit tests in executable 'FileSystem'",
29+
"cargo": {
30+
"args": [
31+
"test",
32+
"--no-run",
33+
"--bin=FileSystem",
34+
"--package=FileSystem"
35+
],
36+
"filter": {
37+
"name": "FileSystem",
38+
"kind": "bin"
39+
}
40+
},
41+
"args": [],
42+
"cwd": "${workspaceFolder}"
43+
}
44+
]
45+
}

src/block.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pub struct Inode {
6767
pub doubly_indirect_block: Option<u32>, //二级索引,第14个块
6868
pub triply_indirect_block: Option<u32>, //三级索引,第15个块
6969
}
70-
70+
#[derive(Debug)]
7171
struct DataBlock {
7272
pub data: [u8; BLOCK_SIZE as usize], //每个文件块的大小为1kB
7373
}
@@ -188,10 +188,8 @@ impl BlockGroup {
188188

189189
pub fn bg_mkdir(&mut self, name: String, parent_inode: usize) -> Option<fuser::FileAttr> {
190190
let child_inode = self.add_entry_to_directory(name, parent_inode);
191-
let t = self.add_entry_to_directory(".".to_string(), child_inode);
192-
dbg!(t);
193-
let m = self.add_entry_to_directory("..".to_string(), child_inode);
194-
dbg!(m);
191+
self.add_entry_to_directory(".".to_string(), child_inode);
192+
self.add_entry_to_directory("..".to_string(), child_inode);
195193
Some(self.inode_table[child_inode - 1].get_file_attr(child_inode as u64))
196194
}
197195

@@ -202,9 +200,11 @@ impl BlockGroup {
202200
.unwrap()
203201
.direct_pointer
204202
{
203+
dbg!(&name);
205204
if let Some(index) = block_index {
206205
let data_block = &self.data_block[index as usize];
207206
let dirs = data_block.get_all_dirs_name();
207+
dbg!(&dirs);
208208
for dir in dirs {
209209
if dbg!(dir.name) == name {
210210
let inode = &self.inode_table[index as usize - 1];
@@ -229,7 +229,7 @@ impl BlockGroup {
229229
pub fn add_entry_to_directory(&mut self, name: String, parent_inode: usize) -> usize {
230230
let inode_index = self.get_inode(); //分配一个inode
231231
let mut dir = DirectoryEntry::new(name, FileType::Directory, inode_index as u32, 0);
232-
let (dir_data, dir_size) = dir.to_bytes();
232+
let (dir_data, dir_size) = dir.to_bytes();//修改了目录的大小
233233
for &block_index in self
234234
.inode_table
235235
.get(parent_inode - 1)
@@ -442,21 +442,21 @@ impl DataBlock {
442442
pub fn get_all_dirs_name(&self) -> Vec<DirectoryEntry> {
443443
let mut offset = 0;
444444
let mut dir_vec: Vec<DirectoryEntry> = vec![];
445+
//dbg!(&self.data[..50]);
445446
while offset + 6 <= BLOCK_SIZE {
446-
// dbg!(&self.data[..50]);
447447
let file_size= self.data[offset +4];
448-
//dbg!(file_size);
448+
dbg!(file_size);
449449
//bincode::deserialize(!(&self.data[4 + offset..6 + offset])).unwrap(); //从第四个字节开始解析2个字节为文件的大小
450450
if file_size == 0 {
451451
break;
452452
}
453453
let dir: DirectoryEntry =
454454
bincode::deserialize(&self.data[offset..offset + file_size as usize]).unwrap();
455-
//dbg!(&dir);
455+
dbg!(&dir);
456456
dir_vec.push(dir);
457457
offset += file_size as usize;
458458
}
459-
dbg!(dir_vec)
459+
dir_vec
460460
}
461461

462462
pub fn rmdir_from_data_block(&mut self, dir_name: &String) {

src/disk.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,10 @@ impl Filesystem for EXT2FS {
137137
parent,
138138
name.to_string_lossy()
139139
);
140-
dbg!(name);
141140
let dir_name = name.to_string_lossy().into_owned();
142-
dbg!(&dir_name);
143141
let attr = self.block_groups.bg_lookup(dir_name.to_string(), parent as usize);
144142
dbg!(attr);
145143
if let Some(file) = attr {
146-
dbg!(file);
147144
reply.entry(&Duration::from_secs(1), &file, 0);
148145
}
149146
}

0 commit comments

Comments
 (0)