Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Doug Evans <dje@google.com>
To: Paul Pluzhnikov <ppluzhnikov@google.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [patch] Add "debug jit" for easier tracing of JIT support internals
Date: Wed, 05 Jan 2011 20:02:00 -0000	[thread overview]
Message-ID: <AANLkTiks2fAEGXVwBxbOJZYaGmVLGPKHdrQ0fdM=ELDn@mail.gmail.com> (raw)
In-Reply-To: <20110105193621.A8CBF190B3A@elbrus2.mtv.corp.google.com>

On Wed, Jan 5, 2011 at 11:36 AM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> Greetings,
>
> This is on the rather obvious side ...
>
> Thanks,
>
> --
> Paul Pluzhnikov
>
> 2010-01-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
>
>        * jit.c (jit_debug): New variable.
>        (show_jit_debug): New function.
>        (jit_register_code, jit_inferior_init): Add debug output.
>        (_initialize_jit): Register "debug jit" command.
>
>
>
> Index: jit.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/jit.c,v
> retrieving revision 1.8
> diff -u -p -r1.8 jit.c
> --- jit.c       1 Jan 2011 15:33:09 -0000       1.8
> +++ jit.c       5 Jan 2011 19:35:32 -0000
> @@ -21,6 +21,8 @@
>
>  #include "jit.h"
>  #include "breakpoint.h"
> +#include "command.h"
> +#include "gdbcmd.h"
>  #include "gdbcore.h"
>  #include "observer.h"
>  #include "objfiles.h"
> @@ -48,6 +50,17 @@ static CORE_ADDR jit_descriptor_addr = 0
>
>  static int registering_code = 0;
>
> +/* Non-zero if we want to see trace of jit level stuff.  */
> +
> +static int jit_debug = 0;
> +
> +static void
> +show_jit_debug (struct ui_file *file, int from_tty,
> +               struct cmd_list_element *c, const char *value)
> +{
> +  fprintf_filtered (file, _("JIT debugging is %s.\n"), value);
> +}
> +
>  /* Helper cleanup function to clear an integer flag like the one above.  */
>
>  static void
> @@ -219,6 +232,13 @@ jit_register_code (struct gdbarch *gdbar
>   const struct bfd_arch_info *b;
>   CORE_ADDR *entry_addr_ptr;
>
> +  if (jit_debug)
> +    fprintf_unfiltered (gdb_stdlog,
> +                       "jit_register_code, symfile_addr = %s, "
> +                       "symfile_size = %zu\n",
> +                       paddress (gdbarch, code_entry->symfile_addr),
> +                       code_entry->symfile_size);
> +
>   nbfd = bfd_open_from_target_memory (code_entry->symfile_addr,
>                                       code_entry->symfile_size, gnutarget);
>   old_cleanups = make_cleanup_bfd_close (nbfd);
> @@ -314,6 +334,11 @@ jit_inferior_init (struct gdbarch *gdbar
>   struct jit_code_entry cur_entry;
>   CORE_ADDR cur_entry_addr;
>
> +  if (jit_debug)
> +    fprintf_unfiltered (gdb_stdlog,
> +                       "jit_inferior_init, registering_code = %d\n",
> +                       registering_code);
> +
>   /* When we register code, GDB resets its breakpoints in case symbols have
>      changed.  That in turn calls this handler, which makes us look for new
>      code again.  To avoid being re-entered, we check this flag.  */
> @@ -329,6 +354,10 @@ jit_inferior_init (struct gdbarch *gdbar
>   if (reg_addr == 0)
>     return;
>
> +  if (jit_debug)
> +    fprintf_unfiltered (gdb_stdlog, "jit_inferior_init, reg_addr = %s\n",
> +                       paddress (gdbarch, reg_addr));
> +
>   /* Lookup the descriptor symbol and cache the addr.  If it is missing, we
>      assume we are not attached to a JIT and return early.  */
>   desc_symbol = lookup_minimal_symbol (jit_descriptor_name, NULL, NULL);
> @@ -338,6 +367,11 @@ jit_inferior_init (struct gdbarch *gdbar
>   if (jit_descriptor_addr == 0)
>     return;
>
> +  if (jit_debug)
> +    fprintf_unfiltered (gdb_stdlog,
> +                       "jit_inferior_init, jit_descriptor_addr = %s\n",
> +                       paddress (gdbarch, jit_descriptor_addr));
> +
>   /* Read the descriptor so we can check the version number and load any already
>      JITed functions.  */
>   jit_read_descriptor (gdbarch, &descriptor);
> @@ -453,6 +487,15 @@ extern void _initialize_jit (void);
>  void
>  _initialize_jit (void)
>  {
> +  add_setshow_zinteger_cmd ("jit", class_maintenance, &jit_debug, _("\
> +Set JIT debugging."), _("\
> +Show JIT debugging."), _("\
> +When non-zero, JIT debugging is enabled.  Higher numbers are more\n\
> +verbose."),
> +                           NULL,
> +                           show_jit_debug,
> +                           &setdebuglist, &showdebuglist);
> +
>   observer_attach_inferior_created (jit_inferior_created_observer);
>   observer_attach_inferior_exit (jit_inferior_exit_hook);
>   jit_objfile_data = register_objfile_data ();
>

"works for me".
I'd suggest removing "Higher numbers are more verbose."
and while I haven't tried it, I wonder if show_jit_debug is necessary
(bummer if it is, we should fix that).


  reply	other threads:[~2011-01-05 20:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-05 19:36 Paul Pluzhnikov
2011-01-05 20:02 ` Doug Evans [this message]
2011-01-05 22:57   ` Pedro Alves
2011-01-05 23:16     ` Paul Pluzhnikov
2011-01-05 23:28       ` Pedro Alves
2011-01-05 23:49         ` Paul Pluzhnikov
2011-01-06  0:45           ` Pedro Alves
2011-01-06  1:09             ` Paul Pluzhnikov
2011-01-06  4:14               ` Eli Zaretskii
2011-01-05 23:26     ` Doug Evans
2011-01-05 23:34       ` Pedro Alves
2011-01-06 19:45         ` Tom Tromey
2011-01-06 19:52           ` Paul Pluzhnikov
2011-01-05 20:57 ` Eli Zaretskii
2011-01-05 21:53   ` Paul Pluzhnikov
2011-01-05 22:51     ` Pedro Alves
2011-01-06  4:00     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTiks2fAEGXVwBxbOJZYaGmVLGPKHdrQ0fdM=ELDn@mail.gmail.com' \
    --to=dje@google.com \
    --cc=gdb-patches@sourceware.org \
    --cc=ppluzhnikov@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox