Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: Kevin Pouget <kevin.pouget@gmail.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC - Python] New ObjFile event
Date: Mon, 28 Mar 2011 20:28:00 -0000	[thread overview]
Message-ID: <m362r3q9ih.fsf@fleche.redhat.com> (raw)
In-Reply-To: <AANLkTin=YO__Mz88HPFoT7a6_it5BxthnUdODJMs52eG@mail.gmail.com>	(Kevin Pouget's message of "Mon, 28 Mar 2011 04:06:29 -0400")

>>>>> "Kevin" == Kevin Pouget <kevin.pouget@gmail.com> writes:

Kevin> following this discussion at
Kevin> http://sourceware.org/ml/gdb/2011-03/msg00136.html, I would like to
Kevin> suggest a patch for the Python event system. Based on the ''exited",
Kevin> "cont", ... events, this patch allows a python script to register an
Kevin> interest to the loading of new object files in the debuggee. GDB
Kevin> observer "observer_attach_new_objfile" is used to trigger the Python
Kevin> callback.

It seems like a good idea.

Do you have copyright assignment paperwork in place?  If not, let me
know and I can get you started.  This is a requirement before we can
accept a non-trivial patch.

Kevin> and, likewise, allows Python's "gdb.current_objfile ()" to return
Kevin> the current object file.

I'm ambivalent about this part.

It seems to me that the objfile should be an attribute of the event.
Also setting it globally is ok, if you really want that, but it isn't a
necessity.

Kevin> There is still one thing I'm not happy with in the code, it's how to
Kevin> 'properly' access "gdbpy_current_objfile" ? I commented out "static"
Kevin> and declared it "extern" when I needed it, but that's certainly not
Kevin> the best way:

Dropping the `static' is ok.  GDB is already full of this kind of thing.

Kevin> please let me know what you thing about it

Looks pretty good!

Here are some notes on the patch itself.  In addition to these, this
patch needs a ChangeLog entry, a documentation update, and a test case.

Kevin> +extern struct objfile *gdbpy_current_objfile;

Should be in python-internal.h.

Kevin> +static void
Kevin> +python_new_objfile (struct objfile *objfile)

New functions need an introductory comment.

Kevin> +  /* Will be NULL when clearing the symtab. */
Kevin> +  if (objfile)
Kevin> +    cleanup = ensure_python_env (get_objfile_arch (objfile), current_language);

Is this comment stale?  It doesn't seem relevant.  When can objfile==NULL?

Kevin> -
Kevin> +  observer_attach_new_objfile (python_new_objfile);
Kevin> +  

Gratuitous whitespace change.

Kevin> int
Kevin> emit_new_objfile_event (struct objfile *objfile)
Kevin> {
Kevin>   PyObject *event;
[...]
Kevin>   event = create_new_objfile_event_object ();
Kevin>   if (event)
Kevin>     return evpy_emit_event (event, gdb_py_events.newobjfile);
Kevin>   return -1;

I think this should attach the objfile to the event object.

Tom


  parent reply	other threads:[~2011-03-28 20:24 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AANLkTimybJtpUzy13FuLxQQMJfeWQuf3-cgqGmu23Bq5@mail.gmail.com>
2011-03-28  8:49 ` Kevin Pouget
2011-03-28  8:51   ` Kevin Pouget
2011-03-28  9:00     ` Phil Muldoon
2011-03-28  8:54   ` Phil Muldoon
2011-03-28  9:03   ` Phil Muldoon
2011-03-28 10:02     ` Kevin Pouget
2011-03-28 20:28   ` Tom Tromey [this message]
2011-03-29 11:11     ` Kevin Pouget
2011-03-30 11:32       ` Kevin Pouget
2011-03-30 12:14         ` Phil Muldoon
2011-03-30 12:15           ` Kevin Pouget
2011-05-19 20:21             ` Tom Tromey
2011-05-23  8:44               ` Kevin Pouget
2011-09-01  9:56                 ` Kevin Pouget
2011-09-01 11:01                   ` Eli Zaretskii
2011-09-01 11:09                     ` Kevin Pouget
2011-10-03 16:32                       ` Tom Tromey
     [not found]                         ` <CAPftXULEe9R4m7tF=vtJe6NTXHSFAkXgsHCPb3r0mU4wKx0FFg@mail.gmail.com>
2011-10-04  8:25                           ` Kevin Pouget
2011-10-04 17:02                             ` Tom Tromey
2011-10-05 11:10                               ` Kevin Pouget
2011-10-05 14:16                                 ` Tom Tromey
2011-10-05 17:40                                 ` Eli Zaretskii
2011-10-07  7:40                                   ` Kevin Pouget
2011-10-07  7:54                                     ` Kevin Pouget
2011-10-07  8:37 Andreas Tobler
2011-10-07  8:44 ` Kevin Pouget

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=m362r3q9ih.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kevin.pouget@gmail.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