This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix xmethod Python so that it works with Python 3
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Siva Chandra <sivachandra at google dot com>
- Cc: gdb-patches <gdb-patches at sourceware dot org>
- Date: Tue, 5 Aug 2014 10:30:29 -0700
- Subject: Re: [PATCH] Fix xmethod Python so that it works with Python 3
- Authentication-results: sourceware.org; auth=none
- References: <CAGyQ6gxsj1g_C3f87YJSj7VGZZeuob58qZhTbBXDuD3LB6AgvA at mail dot gmail dot com>
> 2014-08-05 Siva Chandra Reddy <sivachandra@google.com>
>
> gdb/
>
> * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
> 'items' methods instead of 'iteritems' method on dictionaries.
>
> gdb/testsuite/
>
> * gdb.python/py-xmethods.py (A_getarrayind)
> (E_method_char_worker.__call__, E_method_int_worker.__call__):
> Use 'print' with function call syntax.
> (E_method_matcher.match): Fix tab vs space indentation mixup.
Perhaps worth porting to the 7.8 branch if approved? I checked
the Python 2.4 documentation, and I think it shows that dict
types support the "items" method, so no backward compatibility
issue with old versions, I think.
One nit (multiple occurences) below:
> diff --git a/gdb/python/lib/gdb/command/xmethods.py b/gdb/python/lib/gdb/command/xmethods.py
> index 55cc81f..206313e 100644
> --- a/gdb/python/lib/gdb/command/xmethods.py
> +++ b/gdb/python/lib/gdb/command/xmethods.py
> @@ -140,7 +140,7 @@ def print_xm_info(xm_dict, name_re):
>
> def set_xm_status1(xm_dict, name_re, status):
> """Set the status (enabled/disabled) of a dictionary of xmethods."""
> - for locus_str, matchers in xm_dict.iteritems():
> + for locus_str, matchers in xm_dict.items():
> for matcher in matchers:
> if not name_re:
> # If the name regex is missing, then set the status of the
> diff --git a/gdb/testsuite/gdb.python/py-xmethods.py b/gdb/testsuite/gdb.python/py-xmethods.py
> index 6fecf2b..26df3de 100644
> --- a/gdb/testsuite/gdb.python/py-xmethods.py
> +++ b/gdb/testsuite/gdb.python/py-xmethods.py
> @@ -40,7 +40,7 @@ def A_geta(obj):
>
>
> def A_getarrayind(obj, index):
> - print 'From Python <A_getarrayind>:'
> + print ('From Python <A_getarrayind>:')
No space before '(' in Python calls.
--
Joel