From: Andy Wingo <wingo@igalia.com>
To: Alexander Smundak <asmundak@google.com>
Cc: Doug Evans <dje@google.com>, gdb-patches <gdb-patches@sourceware.org>
Subject: Re: [RFC] [PATCH] Provide the ability to write the frame unwinder in Python
Date: Wed, 18 Mar 2015 08:54:00 -0000 [thread overview]
Message-ID: <87r3smado6.fsf@igalia.com> (raw)
In-Reply-To: <CAHQ51u4ybxem1X89G7frW-N_gZK6q3rKLunxgf+7UPzpswCfNg@mail.gmail.com> (Alexander Smundak's message of "Tue, 17 Mar 2015 14:37:24 -0700")
On Tue 17 Mar 2015 22:37, Alexander Smundak <asmundak@google.com> writes:
> +/* The implementation of
> + gdb.UnwindInfo.set_previous_frame_register (REG, VALUE) -> None. */
> +
> +static PyObject *
> +unwind_infopy_set_previous_frame_register (PyObject *self, PyObject *args)
> +{
> + unwind_info_object *unwind_info = (unwind_info_object *) self;
> + sniffer_info_object *sniffer_info
> + = (sniffer_info_object *) (unwind_info->sniffer_info);
> + PyObject *pyo_reg_id;
> + PyObject *pyo_reg_value;
> + int regnum;
> +
> + if (sniffer_info->frame_info == NULL)
> + {
> + PyErr_SetString (PyExc_ValueError,
> + "Attempting to read register from stale SnifferInfo");
> + return NULL;
> + }
Nit: we are setting the register here.
> +int
> +gdbpy_initialize_unwind (void)
> +{
> + int rc;
> + add_setshow_zuinteger_cmd
> + ("py-unwind", class_maintenance, &pyuw_debug,
> + _("Set Python unwinder debugging."),
> + _("Show Python unwinder debugging."),
> + _("When non-zero, Pythin unwinder debugging is enabled."),
"Python"
> +static PyMethodDef sniffer_info_object_methods[] =
> +{
> + { "read_register", sniffer_infopy_read_register, METH_VARARGS,
> + "read_register (REGNUM) -> gdb.Value\n"
> + "Return the value of the REGNUM in the frame." },
> + { "unwind_info_with_id",
> + sniffer_infopy_unwind_info_with_id, METH_VARARGS,
> + "unwind_info_with_id (SP, PC) -> gdb.UnwindInfo\n"
> + "Construct UnwindInfo for this FrameData, using given SP and PC registers \n"
> + "to identify the frame." },
> + { "unwind_info_with_id_special",
> + sniffer_infopy_unwind_info_with_id_special, METH_VARARGS,
> + "unwind_info_with_id_special (SP, PC, SPECIAL) -> gdb.UnwindInfo\n"
> + "Construct UnwindInfo for this FrameData, using given SP, PC, and SPECIAL "
> + "registers to identify the frame." },
> + { "unwind_info_with_id_wild",
> + sniffer_infopy_unwind_info_with_id_wild, METH_VARARGS,
> + "unwind_info_with_id_wild (SP) ->gdb.UnwindInfo\n"
> + "Construct UnwindInfo for this FrameData, using given SP register to \n"
> + "identify the frame." },
> + {NULL} /* Sentinel */
> +};
Still no support for register names.
> +import gdb
> +from gdb.sniffer import Sniffer
> +
> +class TestSniffer(Sniffer):
I still think it's much better to call these "unwinders". You say that
it's the terminology that GDB uses but that's not really the case --
"sniffer" names part of the unwinder interface, which Python and Guile
implement the whole of. You chose "unwinder" as the documentation
heading and the file name; why introduce a new term to the user?
Andy
next prev parent reply other threads:[~2015-03-18 8:54 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-15 18:14 Alexander Smundak
2014-12-22 19:24 ` Alexander Smundak
2014-12-29 18:02 ` Alexander Smundak
2015-01-05 17:53 ` Alexander Smundak
2015-01-12 20:03 ` Alexander Smundak
2015-01-22 3:31 ` Alexander Smundak
2015-01-29 1:36 ` Alexander Smundak
2015-01-12 21:00 ` Simon Marchi
2015-01-12 21:22 ` Doug Evans
2015-02-04 22:36 ` Doug Evans
2015-02-12 17:58 ` Alexander Smundak
2015-02-19 2:32 ` Alexander Smundak
2015-02-20 11:12 ` Phil Muldoon
2015-02-26 3:09 ` Alexander Smundak
2015-03-02 22:56 ` Alexander Smundak
2015-03-03 8:46 ` Andy Wingo
2015-03-04 2:36 ` Alexander Smundak
2015-03-04 7:49 ` Andy Wingo
2015-03-09 11:02 ` Phil Muldoon
2015-03-11 2:22 ` Alexander Smundak
2015-03-11 8:49 ` Andy Wingo
2015-03-11 17:34 ` Doug Evans
2015-03-11 18:48 ` Alexander Smundak
2015-03-16 11:29 ` Andy Wingo
2015-03-16 12:01 ` Andy Wingo
2015-03-16 17:25 ` Alexander Smundak
2015-03-17 8:57 ` Andy Wingo
2015-03-17 19:48 ` Alexander Smundak
2015-03-17 21:37 ` Alexander Smundak
2015-03-18 8:54 ` Andy Wingo [this message]
2015-03-18 22:57 ` Alexander Smundak
2015-03-23 19:58 ` Doug Evans
2015-03-24 9:06 ` Andy Wingo
2015-03-26 3:31 ` Alexander Smundak
2015-03-26 18:53 ` Eli Zaretskii
2015-03-27 22:29 ` Doug Evans
2015-03-28 1:10 ` Alexander Smundak
2015-03-30 17:45 ` Doug Evans
2015-03-30 19:49 ` Alexander Smundak
2015-03-31 22:36 ` Doug Evans
2015-04-01 0:09 ` Alexander Smundak
2015-04-01 0:28 ` Doug Evans
2015-03-18 23:25 ` Doug Evans
2015-03-19 0:36 ` Alexander Smundak
2015-03-19 8:12 ` Andy Wingo
2015-03-20 0:15 ` Doug Evans
2015-03-20 2:27 ` Alexander Smundak
2015-03-20 17:48 ` Doug Evans
2015-03-20 8:26 ` Andy Wingo
2015-03-20 18:32 ` Doug Evans
2015-03-17 22:21 ` Doug Evans
2015-03-18 8:57 ` Andy Wingo
2015-03-18 16:48 ` Doug Evans
2015-03-19 8:04 ` Andy Wingo
2015-03-09 9:42 ` Andy Wingo
2015-03-03 0:49 ` Alexander Smundak
2015-03-03 14:38 ` Andy Wingo
2015-03-04 2:52 ` Alexander Smundak
2015-02-20 9:42 ` Phil Muldoon
2015-02-20 9:59 ` Phil Muldoon
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=87r3smado6.fsf@igalia.com \
--to=wingo@igalia.com \
--cc=asmundak@google.com \
--cc=dje@google.com \
--cc=gdb-patches@sourceware.org \
/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