public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Phil Muldoon <pmuldoon@redhat.com>
To: Tom Tromey <tromey@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [patch] Add an evaluation function hook to Python breakpoints.
Date: Tue, 14 Dec 2010 17:02:00 -0000	[thread overview]
Message-ID: <m3vd2wwamj.fsf@redhat.com> (raw)
In-Reply-To: <m3fwu0s463.fsf@fleche.redhat.com> (Tom Tromey's message of "Tue,	14 Dec 2010 09:35:48 -0700")

Tom Tromey <tromey@redhat.com> writes:

>>>>>> "Phil" == Phil Muldoon <pmuldoon@redhat.com> writes:
>
> Phil> +	  PyObject *gdbpy_bp_eval = PyString_FromString ("evaluate");
>
> This is leaked.  However...
>
> Phil> +	  if (PyObject_HasAttr (py_bp, gdbpy_bp_eval))
> Phil> +	    {
> Phil> +	      PyObject *result = PyObject_CallMethodObjArgs (py_bp,
> Phil> +							     gdbpy_bp_eval,
> Phil> +							     NULL);
>
> You can just use PyObject_HasAttrString and PyObject_CallMethod instead.

Ok, thanks.

> Phil> +gdb_py_test_silent_cmd  "python eval_bp1 = bp_eval(\"$bp_location2\")" "Set breakpoint" 0
> Phil> +gdb_py_test_silent_cmd  "python also_eval_bp1 = bp_also_eval(\"$bp_location2\")" "Set breakpoint" 0
>
> I think there should also be a test for the case where there is an
> ordinary user breakpoint at the same location as the Python breakpoints.
> In this case, the user breakpoint should stop, but all the Python
> methods should be invoked first.

All the breakpoints at a location will be evaluated, but does the order
matter? I can add the test to prove the point, but the Python breakpoints will
have the evaluation function called regardless if the user breakpoint
was first. 

FWIW in bpstop_stop_status a bpstat chain is built from the location
where the inferior stopped.  Then later, we iterate through that chain and
eventually call bpstat_check_breakpoint_conditions.  Then finally in
that condition call we evaluate the Python function.  This loop does not
exit until the all the bpstats in the chain have been iterated.

Cheers

Phil


  reply	other threads:[~2010-12-14 17:02 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-13 13:50 Phil Muldoon
2010-12-13 14:19 ` Eli Zaretskii
2010-12-13 14:47   ` Phil Muldoon
2010-12-13 15:07     ` Eli Zaretskii
2010-12-13 17:21       ` Phil Muldoon
2010-12-13 17:46         ` Eli Zaretskii
2010-12-13 14:33 ` Pedro Alves
2010-12-13 14:56   ` Phil Muldoon
2010-12-13 15:07     ` Pedro Alves
2010-12-13 20:45 ` Doug Evans
2010-12-13 21:02   ` Phil Muldoon
2010-12-14  3:31     ` Doug Evans
2010-12-14 17:18       ` Phil Muldoon
2010-12-14 17:28   ` Tom Tromey
2010-12-14 19:51     ` Phil Muldoon
2010-12-14 20:00       ` Phil Muldoon
2010-12-15 15:34     ` Phil Muldoon
2010-12-15 20:51       ` Tom Tromey
2011-01-27 12:44         ` Phil Muldoon
     [not found]           ` <AANLkTimi6ugruNAqUGHni8Kvkz+B5-s2aAkEoTY2D_gT@mail.gmail.com>
2011-01-27 21:40             ` Phil Muldoon
2011-01-28 10:42           ` Tom Tromey
2010-12-15 16:21     ` Doug Evans
2010-12-15 20:57       ` Tom Tromey
2010-12-21 17:33         ` Doug Evans
2010-12-21 20:02           ` Tom Tromey
2010-12-22 16:34             ` Doug Evans
2010-12-22 17:35               ` Tom Tromey
2010-12-28  5:53                 ` Doug Evans
2011-01-05 18:35                   ` Tom Tromey
2011-01-05 20:23                     ` Phil Muldoon
2011-01-09 20:32                       ` Doug Evans
2010-12-14 17:46   ` Pedro Alves
2010-12-14 16:35 ` Tom Tromey
2010-12-14 17:02   ` Phil Muldoon [this message]
2010-12-14 17:48     ` Tom Tromey
2010-12-14 16:42 ` Tom Tromey

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=m3vd2wwamj.fsf@redhat.com \
    --to=pmuldoon@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tromey@redhat.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).