From a893229e0840ca348456cc7dfbdc9887a4575581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 25 Jan 2004 14:44:51 +0000 Subject: [PATCH] Cleaned up the debug mess mmu_man has created (thanks anyway!). Switched to kernel_cpp.h/cpp. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6289 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Debug.cpp | 51 +++++++++++++++++++ src/add-ons/kernel/file_systems/bfs/Debug.h | 5 ++ 2 files changed, 56 insertions(+) diff --git a/src/add-ons/kernel/file_systems/bfs/Debug.cpp b/src/add-ons/kernel/file_systems/bfs/Debug.cpp index ba26c268f5..79eba6e4bb 100644 --- a/src/add-ons/kernel/file_systems/bfs/Debug.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Debug.cpp @@ -9,6 +9,7 @@ #include "Debug.h" #include "BPlusTree.h" +#include "Inode.h" #include @@ -43,6 +44,21 @@ dump_block_run(const char *prefix, block_run &run) } +void +dump_inode(Inode &inode) +{ + Print("Inode (%p) {\n", &inode); + Print("\tfVolume = %p\n", inode.fVolume); + Print("\tfBlockNumber = 0x%16Lx\n", inode.fBlockNumber); + Print("\tfNode = %p\n", inode.Node()); + Print("\tfTree = %p\n", inode.fTree); + Print("\tfAttributes = %p\n", inode.fAttributes); + Print("\tfOldSize = 0x%16Lx\n", inode.fOldSize); + Print("\tfOldLastModified = 0x%16Lx\n", inode.fOldLastModified); + Print("}\n"); +} + + void dump_super_block(disk_super_block *superBlock) { @@ -239,3 +255,38 @@ dump_bplustree_node(bplustree_node *node,bplustree_header *header,Volume *volume } } } + + +// #pragma mark - + + +//#warn Don't mount more than once... would register twice the debugger commands! + +static int +dbg_inode(int argc, char **argv) +{ + if (argc < 2) { + kprintf("usage: obfsinode ptr-to-inode\n"); + return 0; + } + + Inode *inode = (Inode *)parse_expression(argv[1]); + dump_inode(*inode); + + return B_OK; +} + + +void +unregister_debugger_commands() +{ + remove_debugger_command("obfsinode", dbg_inode); +} + + +void +register_debugger_commands() +{ + add_debugger_command("obfsinode", dbg_inode, "dump an Inode object"); +} + diff --git a/src/add-ons/kernel/file_systems/bfs/Debug.h b/src/add-ons/kernel/file_systems/bfs/Debug.h index b2a5a77239..a8e7f5c3a8 100644 --- a/src/add-ons/kernel/file_systems/bfs/Debug.h +++ b/src/add-ons/kernel/file_systems/bfs/Debug.h @@ -86,16 +86,21 @@ struct data_stream; struct bfs_inode; struct disk_super_block; + class Inode; class Volume; // some structure dump functions extern void dump_block_run(const char *prefix, block_run &run); + extern void dump_inode(Inode &inode); extern void dump_super_block(disk_super_block *superBlock); extern void dump_data_stream(data_stream *stream); extern void dump_inode(bfs_inode *inode); extern void dump_bplustree_header(bplustree_header *header); extern void dump_bplustree_node(bplustree_node *node,bplustree_header *header = NULL,Volume *volume = NULL); extern void dump_block(const char *buffer, int size); + + extern void unregister_debugger_commands(); + extern void register_debugger_commands(); #endif #endif /* DEBUG_H */