[RFC] auto-generate most target debug methods

Pedro Alves palves@redhat.com
Thu Jul 17 14:50:00 GMT 2014

On 07/16/2014 03:56 PM, Tom Tromey wrote:
> Pedro> I like the idea of this patch a lot.
> [...]
> Pedro> Did you try an __attribute__(())-like approach?  Something like:
> Appended is a patch that works this way.

This looks great to me.

>  static void
> +debug_post_attach (struct target_ops *self, int arg1)
> +{
> +  fprintf_unfiltered (gdb_stdlog, "-> %s->to_post_attach (...)\n", debug_target.to_shortname);
> +  debug_target.to_post_attach (&debug_target, arg1);
> +  fprintf_unfiltered (gdb_stdlog, "<- %s->to_post_attach (", debug_target.to_shortname);
> +  target_debug_print_struct_target_ops_p (&debug_target);
> +  fputs_unfiltered (", ", gdb_stdlog);
> +  target_debug_print_int (arg1);
> +  fputs_unfiltered (")\n", gdb_stdlog);

I think it'll end up being useful to print the arguments before
the call too, but I don't think we do that today, so this way
looks fine to me.

> +static void
> +delegate_resume (struct target_ops *self, ptid_t arg1, int TARGET_DEBUG_PRINTER (target_debug_print_step) arg2, enum gdb_signal arg3)

Doesn't really matter much, but would it be trivial to strip
out the TARGET_DEBUG_PRINTER part in these generated methods?


I wonder about generating the target_foo() entry point methods too...

Pedro Alves

More information about the Gdb-patches mailing list