This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[ping] [PATCH] python: accept address and explicit locations in gdb.decode_line
- From: "Metzger, Markus T" <markus dot t dot metzger at intel dot com>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Cc: "keiths at redhat dot com" <keiths at redhat dot com>, "yao dot qi at arm dot com" <yao dot qi at arm dot com>
- Date: Fri, 8 Jul 2016 07:13:57 +0000
- Subject: [ping] [PATCH] python: accept address and explicit locations in gdb.decode_line
- Authentication-results: sourceware.org; auth=none
ping
See also the previous discussion: https://sourceware.org/ml/gdb-patches/2016-06/msg00328.html.
Thanks,
Markus.
> -----Original Message-----
> From: Metzger, Markus T
> Sent: Monday, June 20, 2016 4:33 PM
> To: gdb-patches@sourceware.org
> Cc: keiths@redhat.com
> Subject: [PATCH] python: accept address and explicit locations in
> gdb.decode_line
>
> The gdb.decode_line python function is documented to support the same
> location
> expressions as the "break" command. It currently expects a linespec location.
>
> Instead of creating a linespec location directly, create the location via
> string_to_event_location_basic.
>
> It's not clear to me whether I should use python_language or current_language,
> though. Is there some comment that explains it?
>
> 2016-06-20 Markus Metzger <markus.t.metzger@intel.com>
>
> gdb/
> * python/python.c (gdbpy_decode_line): Call
> string_to_event_location_basic.
>
> testsuite/
> * gdb.python/python.exp: Test decode_line("*0").
> ---
> gdb/python/python.c | 2 +-
> gdb/testsuite/gdb.python/python.exp | 7 +++++++
> 2 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/python/python.c b/gdb/python/python.c
> index 1f1fece..7bee890 100644
> --- a/gdb/python/python.c
> +++ b/gdb/python/python.c
> @@ -738,7 +738,7 @@ gdbpy_decode_line (PyObject *self, PyObject *args)
>
> if (arg != NULL)
> {
> - location = new_linespec_location (&arg);
> + location = string_to_event_location_basic (&arg, python_language);
> make_cleanup_delete_event_location (location);
> }
>
> diff --git a/gdb/testsuite/gdb.python/python.exp
> b/gdb/testsuite/gdb.python/python.exp
> index 3f8c46f..4072fa3 100644
> --- a/gdb/testsuite/gdb.python/python.exp
> +++ b/gdb/testsuite/gdb.python/python.exp
> @@ -251,6 +251,13 @@ gdb_py_test_silent_cmd {python symtab =
> gdb.decode_line ("func1,func2")} \
> "test decode_line func1,func2" 1
> gdb_test {python print (symtab[0])} ",func2" "stop at comma in linespec"
>
> +gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"*0\")" "Test
> decode_line *0" 1
> +gdb_test "python print (len(symtab))" "2" "Test decode_line *0 result length"
> +gdb_test "python print (symtab\[0\])" "None" "Test decode_line *0 unparsed"
> +gdb_test "python print (len(symtab\[1\]))" "1" "Test decode_line *0 locations
> length"
> +gdb_test "python print (symtab\[1\]\[0\].symtab)" "None" "Test decode_line
> *0 filename"
> +gdb_test "python print (symtab\[1\]\[0\].pc)" "0" "Test decode_line *0 pc"
> +
> # gdb.write
> gdb_test "python print (sys.stderr)" ".*gdb.GdbOutputErrorFile
> (instance|object) at.*" "Test stderr location"
> gdb_test "python print (sys.stdout)" ".*gdb.GdbOutputFile (instance|object)
> at.*" "Test stdout location"
> --
> 1.8.3.1
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928