nxgdb/fs: use default args

Instead of storing it to self

Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
This commit is contained in:
xuxingliang
2024-11-26 09:57:42 +08:00
committed by Alin Jerpelea
parent d36b2f94d3
commit dc5251f9c8
+16 -17
View File
@@ -305,7 +305,6 @@ class ForeachInode(gdb.Command):
def __init__(self): def __init__(self):
super().__init__("foreach inode", gdb.COMMAND_USER) super().__init__("foreach inode", gdb.COMMAND_USER)
self.level = 4096
def get_root_inode(self, addr_or_expr): def get_root_inode(self, addr_or_expr):
try: try:
@@ -321,7 +320,7 @@ class ForeachInode(gdb.Command):
"-L", "-L",
"--level", "--level",
type=int, type=int,
default=None, default=4096,
help="Only render the tree to a specific depth", help="Only render the tree to a specific depth",
) )
parser.add_argument( parser.add_argument(
@@ -335,18 +334,13 @@ class ForeachInode(gdb.Command):
args = parser.parse_args(argv) args = parser.parse_args(argv)
except SystemExit: except SystemExit:
return None return None
return {
"level": args.level if args.level else 4096,
"root_inode": (
self.get_root_inode(args.addr_or_expr)
if args.addr_or_expr
else utils.gdb_eval_or_none("g_root_inode")
),
}
def print_inode_info(self, node: Inode, level, prefix): return args
if level > self.level:
def print_inode_info(self, node: Inode, level=1, prefix="", maxlevel=4096):
if level > maxlevel:
return return
while node: while node:
if node.i_peer: if node.i_peer:
initial_indent = prefix + "├── " initial_indent = prefix + "├── "
@@ -391,7 +385,7 @@ class ForeachInode(gdb.Command):
) )
) )
if node.i_child: if node.i_child:
self.print_inode_info(node.i_child, level + 1, newprefix) self.print_inode_info(node.i_child, level + 1, newprefix, maxlevel)
node = node.i_peer node = node.i_peer
def diagnose(self, *args, **kwargs): def diagnose(self, *args, **kwargs):
@@ -406,11 +400,16 @@ class ForeachInode(gdb.Command):
} }
def invoke(self, args, from_tty): def invoke(self, args, from_tty):
arg = self.parse_arguments(args.split(" ")) args = self.parse_arguments(args.split(" "))
if not arg: if not args:
return return
self.level = arg["level"]
self.print_inode_info(arg["root_inode"], 1, "") root = (
self.get_root_inode(args.addr_or_expr)
if args.addr_or_expr
else utils.gdb_eval_or_none("g_root_inode")
)
self.print_inode_info(root, maxlevel=args.level)
class InfoShmfs(gdb.Command): class InfoShmfs(gdb.Command):