From b885cb3633edce929ea2691c428120cd61944a40 Mon Sep 17 00:00:00 2001 From: xuxingliang Date: Fri, 8 Nov 2024 12:28:26 +0800 Subject: [PATCH] gdb/lists: add element option to foreach list So we can focus on single element of struct, same as array. Fix typo in foreach array args.element Signed-off-by: xuxingliang --- tools/gdb/nuttxgdb/lists.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/gdb/nuttxgdb/lists.py b/tools/gdb/nuttxgdb/lists.py index b7e999dcd07..0f61925be28 100644 --- a/tools/gdb/nuttxgdb/lists.py +++ b/tools/gdb/nuttxgdb/lists.py @@ -349,6 +349,13 @@ class ForeachListEntry(gdb.Command): parser.add_argument( "-m", "--member", type=str, default=None, help="Member name in container" ) + parser.add_argument( + "-e", + "--element", + type=str, + help="Only dump this element in array member struct.", + default=None, + ) try: args = parser.parse_args(argv) except SystemExit: @@ -365,6 +372,7 @@ class ForeachListEntry(gdb.Command): else node ) entry = entry.dereference() + entry = entry[args.element] if args.element else entry gdb.write( f"{i} *({entry.type} *){hex(entry.address)} {entry.format_string(styling=True)}\n" ) @@ -409,5 +417,5 @@ class ForeachArray(gdb.Command): node = pointer len = args.length if args.length else utils.nitems(pointer) for i in range(len): - entry = node[i][args.element] if arg.element else node[i] + entry = node[i][args.element] if args.element else node[i] gdb.write(f"{i}: {entry.format_string(styling=True)}\n")