From b38f70086dbc2c06ac261829fa31f6cd29d59973 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 19 Apr 2024 15:46:52 -0400 Subject: gdb: make debug_target use one-liners Turn the debug prints in debug_target's method to be one liners. For instance, change this: gdb_printf (gdb_stdlog, "<- %s->wait (", this->beneath ()->shortname ()); gdb_puts (target_debug_print_ptid_t (arg0), gdb_stdlog); gdb_puts (", ", gdb_stdlog); gdb_puts (target_debug_print_target_waitstatus_p (arg1), gdb_stdlog); gdb_puts (", ", gdb_stdlog); gdb_puts (target_debug_print_target_wait_flags (arg2), gdb_stdlog); gdb_puts (") = ", gdb_stdlog); target_debug_print_ptid_t (result); gdb_puts ("\n", gdb_stdlog); into this: gdb_printf (gdb_stdlog, "<- %s->wait (%s, %s, %s) = %s\n", this->beneath ()->shortname (), target_debug_print_ptid_t (arg0).c_str (), target_debug_print_target_waitstatus_p (arg1).c_str (), target_debug_print_target_wait_flags (arg2).c_str (), target_debug_print_ptid_t (result).c_str ()); This makes it possible for a subsequent patch to turn this gdb_printf call into a `target_debug_printf` call. Change-Id: I808202438972fac1bba2f8ccb63e66a4fcef20c9 Approved-By: Tom Tromey --- gdb/make-target-delegates.py | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) (limited to 'gdb/make-target-delegates.py') diff --git a/gdb/make-target-delegates.py b/gdb/make-target-delegates.py index 051efce..f6f2bf0 100755 --- a/gdb/make-target-delegates.py +++ b/gdb/make-target-delegates.py @@ -290,28 +290,34 @@ def write_debugmethod( print(", ".join(names), file=f, end="") print(");", file=f) - # Now print the arguments. - print( - ' gdb_printf (gdb_stdlog, "<- %s->' - + name - + ' (", this->beneath ()->shortname ());', - file=f, + # Generate the debug printf call. + args_fmt = ", ".join(["%s"] * len(argtypes)) + args = "".join( + [ + (",\n\t {printer} (arg{i}).c_str ()").format( + printer=munge_type(t), i=i + ) + for i, t in enumerate(argtypes) + ] ) - for i in range(len(argtypes)): - if i > 0: - print(' gdb_puts (", ", gdb_stdlog);', file=f) - printer = munge_type(argtypes[i]) - print( - " gdb_puts (" + printer + " (" + names[i] + "), gdb_stdlog);", - file=f, - ) + if return_type != "void": - print(' gdb_puts (") = ", gdb_stdlog);', file=f) - printer = munge_type(return_type) - print(" " + printer + " (result);", file=f) - print(' gdb_puts ("\\n", gdb_stdlog);', file=f) + ret_fmt = " = %s" + ret = ",\n\t {printer} (result).c_str ()".format( + printer=munge_type(return_type) + ) else: - print(' gdb_puts (")\\n", gdb_stdlog);', file=f) + ret_fmt = "" + ret = "" + + print( + ( + " gdb_printf (gdb_stdlog,\n" + '\t "<- %s->{name} ({args_fmt}){ret_fmt}\\n",\n' + "\t this->beneath ()->shortname (){args}{ret});" + ).format(name=name, args_fmt=args_fmt, args=args, ret_fmt=ret_fmt, ret=ret), + file=f, + ) if return_type != "void": print(" return result;", file=f) -- cgit v1.1