This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 379eee2f4e748fbbe68a41ca94b1ad2ec9e3a7cc
Author: xuxingliang <[email protected]>
AuthorDate: Tue Oct 8 11:48:59 2024 +0800

    tools/gdb: fix hexdump expression parse
    
    Signed-off-by: xuxingliang <[email protected]>
---
 tools/gdb/nuttxgdb/utils.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/tools/gdb/nuttxgdb/utils.py b/tools/gdb/nuttxgdb/utils.py
index 60fea1d1b3..357454efaa 100644
--- a/tools/gdb/nuttxgdb/utils.py
+++ b/tools/gdb/nuttxgdb/utils.py
@@ -763,10 +763,13 @@ class Hexdump(gdb.Command):
             address = int(argv[0], 0)
             size = int(argv[1], 0)
         else:
-            var = gdb.parse_and_eval(f"{argv[0]}")
-            address = int(var.address)
-            size = int(var.type.sizeof)
-            gdb.write(f"{argv[0]} {hex(address)} {int(size)}\n")
+            try:
+                var = gdb.parse_and_eval(f"{argv[0]}")
+                address = int(var.cast(long_type))
+                size = int(argv[1]) if argv[1] else int(var.type.sizeof)
+                gdb.write(f"{argv[0]} {hex(address)} {int(size)}\n")
+            except Exception as e:
+                gdb.write(f"Invalid {argv[0]}: {e}\n")
 
         hexdump(address, size)
 
@@ -843,7 +846,7 @@ class Addr2Line(gdb.Command):
                 self.print_backtrace(addr, pid)
         else:
             addresses = []
-            for arg in shlex.split(args):
+            for arg in shlex.split(args.replace(",", " ")):
                 if is_decimal(arg):
                     addresses.append(int(arg))
                 elif is_hexadecimal(arg):

Reply via email to