Python API: Fix an exception when registering a global pretty-printer in verbose mode

Message ID 1426095417-22764-1-git-send-email-martin.galvan@tallertechnologies.com
State New, archived
Headers

Commit Message

Martin Galvan March 11, 2015, 5:36 p.m. UTC
  This patch fixes a Python exception that was being thrown when trying to register a global pretty-printer with verbose mode on:

  File "/usr/share/gdb/python/gdb/printing.py", line 119, in register_pretty_printer
    gdb.write("Registering global %s pretty-printer ...\n" % name)
NameError: name 'name' is not defined

My copyright assignment is on the works, but since this is a small patch I don't think it's necessary.

--

Changelog:

2015-03-11  Martin Galvan  <martin.galvan@tallertechnologies.com>

	* python/lib/gdb/printing.py: Fix exception when registering a global pretty-printer in verbose mode.
  

Comments

Doug Evans March 11, 2015, 5:59 p.m. UTC | #1
On Wed, Mar 11, 2015 at 10:36 AM, Martin Galvan
<martin.galvan@tallertechnologies.com> wrote:
> This patch fixes a Python exception that was being thrown when trying to register a global pretty-printer with verbose mode on:
>
>   File "/usr/share/gdb/python/gdb/printing.py", line 119, in register_pretty_printer
>     gdb.write("Registering global %s pretty-printer ...\n" % name)
> NameError: name 'name' is not defined
>
> My copyright assignment is on the works, but since this is a small patch I don't think it's necessary.
>
> --
>
> Changelog:
>
> 2015-03-11  Martin Galvan  <martin.galvan@tallertechnologies.com>
>
>         * python/lib/gdb/printing.py: Fix exception when registering a global pretty-printer in verbose mode.
>
> diff --git a/gdb/python/lib/gdb/printing.py b/gdb2/python/lib/gdb/printing.py
> index 47742a9..7fa4532 100644
> --- a/gdb/python/lib/gdb/printing.py
> +++ b/gdb/python/lib/gdb/printing.py
> @@ -116,7 +116,7 @@ def register_pretty_printer(obj, printer, replace=False):
>
>      if obj is None:
>          if gdb.parameter("verbose"):
> -            gdb.write("Registering global %s pretty-printer ...\n" % name)
> +            gdb.write("Registering global %s pretty-printer ...\n" % printer.name)
>          obj = gdb
>      else:
>          if gdb.parameter("verbose"):

Hi.

LGTM with one nit:
I suspect the patch as is will go past our 80 character hard limit.
[Though PEP008 has a 79 character limit ... yay.]
While in C we would put the '%' on the next line, I think we follow
the opposite convention in python. That's what the surrounding
code does anyway, so move printer.name to the next line.

And, yeah, small enough to not need a copyright assignment.

Thanks!
  
Martin Galvan March 11, 2015, 6:05 p.m. UTC | #2
On Wed, Mar 11, 2015 at 2:59 PM, Doug Evans <dje@google.com> wrote:
> LGTM with one nit:
> I suspect the patch as is will go past our 80 character hard limit.
> [Though PEP008 has a 79 character limit ... yay.]
> While in C we would put the '%' on the next line, I think we follow
> the opposite convention in python. That's what the surrounding
> code does anyway, so move printer.name to the next line.

Will do.
  

Patch

diff --git a/gdb/python/lib/gdb/printing.py b/gdb2/python/lib/gdb/printing.py
index 47742a9..7fa4532 100644
--- a/gdb/python/lib/gdb/printing.py
+++ b/gdb/python/lib/gdb/printing.py
@@ -116,7 +116,7 @@  def register_pretty_printer(obj, printer, replace=False):

     if obj is None:
         if gdb.parameter("verbose"):
-            gdb.write("Registering global %s pretty-printer ...\n" % name)
+            gdb.write("Registering global %s pretty-printer ...\n" % printer.name)
         obj = gdb
     else:
         if gdb.parameter("verbose"):