This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: gdb pretty printers and python3.x
- From: <Paul_Koning at Dell dot com>
- To: <doko at ubuntu dot com>
- Cc: <gdb at sourceware dot org>, <libstdc++ at gcc dot gnu dot org>, <dmalcolm at redhat dot com>
- Date: Wed, 12 Jun 2013 14:59:11 +0000
- Subject: Re: gdb pretty printers and python3.x
- References: <51B8394A dot 9040407 at ubuntu dot com>
On Jun 12, 2013, at 5:03 AM, Matthias Klose wrote:
> Starting with gdb-7.6, gdb supports embedding a Python3 interpreter instead of
> Python2. However most pretty printers are still using Python2 code, and when
> shipping a gdb using Python3, you have to fix all pretty printers at once (and
> keep building it with Python2, nobody will port to Python3). So some questions:
>
> - Is there a list of known pretty printers? So far I know about
> libstdc++, python, gtk, libreoffice.
>
> - Is there a minimal python version supported by gdb? If e.g. it is 2.6,
> then probably most pretty printers could be converted to code which can
> be used by both 2.x and 3.x. If not, then it would be up to 2to3 runs
> to do the conversion when needed.
The documented minimum is 2.4, I believe.
It's not hard to write code that works both with 2.4 and above, and with 3.x. The python code that's included with gdb is done that way, including the python section of the test suite. About the only areas that are a hassle are byte strings (since b"foo" is a syntax error in V2.x) and except clauses that use "except MyException as e". That second one was discussed on this list yesterday, the answer is simple, it's just not all that elegant.
paul