* [PATCH 1/3] [rfc][python] Create gdb.python package
@ 2009-12-31 15:00 Matt McCormick
2009-12-31 15:00 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
0 siblings, 1 reply; 9+ messages in thread
From: Matt McCormick @ 2009-12-31 15:00 UTC (permalink / raw)
To: archer; +Cc: Matt McCormick
A gdb.pretty Python package for holding code common for using Python
pretty-printers.
gdb/ChangeLog
2009-30-12 Matt McCormick <matt@mmmccormick.com>
* python/lib/gdb/pretty/__init__.py: New python package.
* Makefile.in: Install it.
---
gdb/Makefile.in | 3 ++-
gdb/python/lib/gdb/pretty/__init__.py | 16 ++++++++++++++++
2 files changed, 18 insertions(+), 1 deletions(-)
create mode 100644 gdb/python/lib/gdb/pretty/__init__.py
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index ac3a4a0..80b4dbe 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2020,7 +2020,8 @@ PY_FILES = gdb/FrameIterator.py gdb/FrameWrapper.py gdb/command/alias.py \
gdb/command/pahole.py gdb/command/upto.py gdb/command/__init__.py \
gdb/command/ignore_errors.py gdb/command/save_breakpoints.py \
gdb/function/caller_is.py gdb/function/in_scope.py \
- gdb/function/__init__.py gdb/backtrace.py gdb/__init__.py
+ gdb/function/__init__.py gdb/pretty/__init__.py \
+ gdb/backtrace.py gdb/__init__.py
# Install the Python library. Python library files go under
# $(pythondir).
diff --git a/gdb/python/lib/gdb/pretty/__init__.py b/gdb/python/lib/gdb/pretty/__init__.py
new file mode 100644
index 0000000..be8a854
--- /dev/null
+++ b/gdb/python/lib/gdb/pretty/__init__.py
@@ -0,0 +1,16 @@
+# Package for code common to custom pretty-printers.
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
--
1.6.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] [python] Create pretty-printer lookup_function classes.
2009-12-31 15:00 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
@ 2009-12-31 15:00 ` Matt McCormick
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
1 sibling, 0 replies; 9+ messages in thread
From: Matt McCormick @ 2009-12-31 15:00 UTC (permalink / raw)
To: archer; +Cc: Matt McCormick
These prevent repeated code and are extensible.
gdb/ChangeLog
2009-31-12 Matt McCormick <matt@mmmccormick.com>
* Makefile.in: Install gdb/pretty/lookup_function.py.
* python/lib/gdb/pretty/lookup_function.py)
(RELookupFunction, RELookupFunctionTag): New lookup_function classes.
gdb/testsuite/ChangeLog
2009-31-12 Matt McCormick <matt@mmmccormick.com>
* testsuite/gdb.python/py-prettyprint.py (lookup_function):
Use RELookupFunctionTag to create the lookup_function.
---
gdb/Makefile.in | 2 +-
gdb/python/lib/gdb/pretty/lookup_function.py | 74 ++++++++++++++++++++++++++
gdb/testsuite/gdb.python/py-prettyprint.py | 35 +-----------
3 files changed, 78 insertions(+), 33 deletions(-)
create mode 100644 gdb/python/lib/gdb/pretty/lookup_function.py
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 80b4dbe..15afc12 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2021,7 +2021,7 @@ PY_FILES = gdb/FrameIterator.py gdb/FrameWrapper.py gdb/command/alias.py \
gdb/command/ignore_errors.py gdb/command/save_breakpoints.py \
gdb/function/caller_is.py gdb/function/in_scope.py \
gdb/function/__init__.py gdb/pretty/__init__.py \
- gdb/backtrace.py gdb/__init__.py
+ gdb/pretty/lookup_function.py gdb/backtrace.py gdb/__init__.py
# Install the Python library. Python library files go under
# $(pythondir).
diff --git a/gdb/python/lib/gdb/pretty/lookup_function.py b/gdb/python/lib/gdb/pretty/lookup_function.py
new file mode 100644
index 0000000..3883f8d
--- /dev/null
+++ b/gdb/python/lib/gdb/pretty/lookup_function.py
@@ -0,0 +1,74 @@
+# Pretty-printer lookup function classes.
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+
+class RELookupFunction (object):
+ """Returns a pretty-printer based on some type filtering followed by a search
+ in a dictionary of key:value of typename_regex:pretty-printer."""
+
+ def __init__ (self, pretty_printers_dict):
+ self.pretty_printers_dict = pretty_printers_dict
+
+
+ def _filter_types (self, gdb_type):
+ """Filters the given type and returns a name to pass to the
+ pretty_printers_dict or None."""
+# If it points to a reference, get the reference.
+ if gdb_type.code == gdb.TYPE_CODE_REF:
+ gdb_type = gdb_type.target ()
+
+# Get the unqualified type, stripped of typedefs.
+ gdb_type = gdb_type.unqualified ().strip_typedefs ()
+
+ return str (gdb_type)
+
+
+ def __call__ (self, val):
+ "Returns a pretty-printer that can print val or None."
+ typename = self._filter_types (val.type)
+ if typename == None:
+ return None
+
+ for regex in self.pretty_printers_dict:
+ if regex.match (typename):
+ return self.pretty_printers_dict[regex] (val)
+
+ return None
+
+
+class RELookupFunctionTag (RELookupFunction):
+ """Similar to RELookupFunction, but when trying to match to type.tag.
+ Useful for ``struct``, ``union``, or ``enum`` in C or C++."""
+
+ def __init__ (self, pretty_printers_dict):
+ super (RELookupFunctionTag, self).__init__ (pretty_printers_dict)
+
+ def _filter_types (self, gdb_type):
+ """Filters the given type and returns a name to pass to the
+ pretty_printers_dict or None."""
+# If it points to a reference, get the reference.
+ if gdb_type.code == gdb.TYPE_CODE_REF:
+ gdb_type = gdb_type.target ()
+
+# Get the unqualified type, stripped of typedefs.
+ gdb_type = gdb_type.unqualified ().strip_typedefs()
+
+ return str (gdb_type.tag)
+
+
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.py b/gdb/testsuite/gdb.python/py-prettyprint.py
index 2f070d8..efe242c 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint.py
@@ -18,6 +18,8 @@
import re
+from gdb.pretty.lookup_function import RELookupFunctionTag
+
# Test returning a Value from a printer.
class string_print:
def __init__(self, val):
@@ -125,37 +127,6 @@ class pp_outer:
yield 's', self.val['s']
yield 'x', self.val['x']
-def lookup_function (val):
- "Look-up and return a pretty-printer that can print val."
-
- # Get the type.
- type = val.type
-
- # If it points to a reference, get the reference.
- if type.code == gdb.TYPE_CODE_REF:
- type = type.target ()
-
- # Get the unqualified type, stripped of typedefs.
- type = type.unqualified ().strip_typedefs ()
-
- # Get the type name.
- typename = type.tag
-
- if typename == None:
- return None
-
- # Iterate over local dictionary of types to determine
- # if a printer is registered for that type. Return an
- # instantiation of the printer if found.
- for function in pretty_printers_dict:
- if function.match (typename):
- return pretty_printers_dict[function] (val)
-
- # Cannot find a pretty printer. Return None.
-
- return None
-
-
def register_pretty_printers ():
pretty_printers_dict[re.compile ('^struct s$')] = pp_s
pretty_printers_dict[re.compile ('^s$')] = pp_s
@@ -188,6 +159,6 @@ def register_pretty_printers ():
pretty_printers_dict[re.compile ('^outerstruct$')] = pp_outer
pretty_printers_dict = {}
-
register_pretty_printers ()
+lookup_function = RELookupFunctionTag (pretty_printers_dict)
gdb.pretty_printers.append (lookup_function)
--
1.6.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] [python] Create gdb.pretty.register
2009-12-31 15:00 [PATCH 1/3] [rfc][python] Create gdb.python package Matt McCormick
@ 2009-12-31 15:00 ` Matt McCormick
2009-12-31 15:00 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
0 siblings, 2 replies; 9+ messages in thread
From: Matt McCormick @ 2009-12-31 15:00 UTC (permalink / raw)
To: archer; +Cc: Matt McCormick
A common gdb.pretty.register function serves two purposes: reduces redundant
code and makes the more concise for the objfile-gdb.py files.
Instead of
def register_printers (objfile):
objfile.pretty_printers.add (str_lookup_function)
repeated in all the pretty printer code and
import gdb.libstdcxx.v6
gdb.libstdcxx.v6.register_printers (gdb.current_objfile ())
import gdb.otherprinter
gdb.otherprinter.register_printers (gdb.current_objfile ())
in the objfile-gdb.py files
import gdb.pretty
gdb.pretty.register ('gdb.libstdcxx.v6.printers', gdb.current_objfile ())
gdb.pretty.register ('gdb.otherprinter', gdb.current_objfile ())
Is only required in the objfile-gdb.py files. This requires the convention that
a function called 'lookup_function' exists the pretty-printer module.
gdb/ChangeLog
2009-30-12 Matt McCormick <matt@mmmccormick.com>
* python/lib/gdb/pretty/__init__.py (register): New function.
---
gdb/python/lib/gdb/pretty/__init__.py | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/gdb/python/lib/gdb/pretty/__init__.py b/gdb/python/lib/gdb/pretty/__init__.py
index be8a854..e75f757 100644
--- a/gdb/python/lib/gdb/pretty/__init__.py
+++ b/gdb/python/lib/gdb/pretty/__init__.py
@@ -14,3 +14,30 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import sys
+
+import gdb
+
+def register (module_path, obj):
+ """Register the objfile with the pretty-printer module.
+
+ The module should define a lookup function called *lookup_function*
+ that returns the gdb pretty-printer or None.
+
+ Arguments
+ ---------
+ module_path: string
+ String specifying the module path. E.g.
+ 'libstdcxx.v6.printer'
+ obj: gdb.Obj
+ Object the printer will be registered with. If None, the pretty-printer
+ is appended to global gdb module.
+"""
+ if obj == None:
+ obj = gdb
+
+ top_mod = __import__ (module_path, globals(), locals(), ['lookup_function'])
+ mod = sys.modules[module_path]
+ obj.pretty_printers.append (mod.lookup_function)
+
--
1.6.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] [python] Create gdb.pretty.register
2009-12-31 15:00 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
2009-12-31 15:00 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
@ 2010-01-18 3:43 ` Matthew McCormick (thewtex)
2010-01-18 7:57 ` [PATCH 1/3] [python] Create gdb.pretty package Matt McCormick
` (2 more replies)
1 sibling, 3 replies; 9+ messages in thread
From: Matthew McCormick (thewtex) @ 2010-01-18 3:43 UTC (permalink / raw)
To: archer; +Cc: Matt McCormick
An updated series of these patches with the following:
Rebase against archer-tromey-python
Split out a _canonical_type (self, gdb_type) method in
RELookupFunction for reusability's sake.
Regression tested.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] [python] Create gdb.pretty.register.
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
2010-01-18 7:57 ` [PATCH 1/3] [python] Create gdb.pretty package Matt McCormick
2010-01-18 7:57 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
@ 2010-01-18 7:57 ` Matt McCormick
2 siblings, 0 replies; 9+ messages in thread
From: Matt McCormick @ 2010-01-18 7:57 UTC (permalink / raw)
To: archer
A common gdb.pretty.register function serves two purposes: reduces redundant
code and makes registering more concise for the objfile-gdb.py files.
Instead of
def register_printers (objfile):
objfile.pretty_printers.add (str_lookup_function)
repeated in all the pretty printer code and
import gdb.libstdcxx.v6
gdb.libstdcxx.v6.register_printers (gdb.current_objfile ())
import gdb.otherprinter
gdb.otherprinter.register_printers (gdb.current_objfile ())
in the objfile-gdb.py files
import gdb.pretty
gdb.pretty.register ('gdb.libstdcxx.v6.printers', gdb.current_objfile ())
gdb.pretty.register ('gdb.otherprinter', gdb.current_objfile ())
Is only required in the objfile-gdb.py files. This requires the convention that
a function called 'lookup_function' exists the pretty-printer module.
gdb/ChangeLog
2009-30-12 Matt McCormick <matt@mmmccormick.com>
* python/lib/gdb/pretty/__init__.py (register): New function.
---
gdb/python/lib/gdb/pretty/__init__.py | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/gdb/python/lib/gdb/pretty/__init__.py b/gdb/python/lib/gdb/pretty/__init__.py
index be8a854..3cd9174 100644
--- a/gdb/python/lib/gdb/pretty/__init__.py
+++ b/gdb/python/lib/gdb/pretty/__init__.py
@@ -14,3 +14,29 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import sys
+
+import gdb
+
+def register (module_path, obj):
+ """Register the objfile with the pretty-printer module.
+
+ The module should define a lookup function called *lookup_function*
+ that returns the gdb pretty-printer or None.
+
+ Arguments
+ ---------
+ module_path: string
+ String specifying the module path. E.g.
+ 'libstdcxx.v6.printer'
+ obj: gdb.Obj
+ Object the printer will be registered with. If None, the pretty-printer
+ is appended to global gdb module.
+"""
+ if obj == None:
+ obj = gdb
+
+ top_mod = __import__ (module_path, globals(), locals(), ['lookup_function'])
+ mod = sys.modules[module_path]
+ obj.pretty_printers.append (mod.lookup_function)
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] [python] Create pretty-printer lookup_function classes.
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
2010-01-18 7:57 ` [PATCH 1/3] [python] Create gdb.pretty package Matt McCormick
@ 2010-01-18 7:57 ` Matt McCormick
2010-01-18 7:57 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
2 siblings, 0 replies; 9+ messages in thread
From: Matt McCormick @ 2010-01-18 7:57 UTC (permalink / raw)
To: archer
These prevent repeated code and are extensible.
gdb/ChangeLog
2009-31-12 Matt McCormick <matt@mmmccormick.com>
* Makefile.in: Install gdb/pretty/lookup_function.py.
* python/lib/gdb/pretty/lookup_function.py)
(RELookupFunction, RELookupFunctionTag): New lookup_function classes.
gdb/testsuite/ChangeLog
2009-31-12 Matt McCormick <matt@mmmccormick.com>
* gdb.python/py-prettyprint.py (lookup_function):
Use RELookupFunctionTag to create the lookup_function.
---
gdb/Makefile.in | 2 -
gdb/python/lib/gdb/pretty/lookup_function.py | 75 ++++++++++++++++++++++++++
gdb/testsuite/gdb.python/py-prettyprint.py | 35 +-----------
3 files changed, 79 insertions(+), 33 deletions(-)
create mode 100644 gdb/python/lib/gdb/pretty/lookup_function.py
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index e9055b1..d1510c2 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2075,7 +2075,7 @@ PY_FILES = gdb/FrameIterator.py gdb/FrameWrapper.py gdb/command/alias.py \
gdb/command/ignore_errors.py gdb/command/save_breakpoints.py \
gdb/function/caller_is.py gdb/function/in_scope.py \
gdb/function/__init__.py gdb/backtrace.py gdb/__init__.py \
- gdb/pretty/__init__.py
+ gdb/pretty/__init__.py gdb/pretty/lookup_function.py
# Install the Python library. Python library files go under
# $(pythondir).
diff --git a/gdb/python/lib/gdb/pretty/lookup_function.py b/gdb/python/lib/gdb/pretty/lookup_function.py
new file mode 100644
index 0000000..f6699bd
--- /dev/null
+++ b/gdb/python/lib/gdb/pretty/lookup_function.py
@@ -0,0 +1,75 @@
+# Pretty-printer lookup_function classes.
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+class RELookupFunction (object):
+ """Returns a pretty-printer based on some type filtering followed by a search
+ in a dictionary of key:value of typename_regex:pretty-printer. If it cannot
+ find a pretty-printer to print the given type, returns None.
+
+ Arguments
+ ---------
+ pretty_printers_dict: dict
+ typename_regex : pretty-pretter-function
+ """
+
+ def __init__ (self, pretty_printers_dict, type_attribute=''):
+ self.pretty_printers_dict = pretty_printers_dict
+
+ def _canonical_type (self, gdb_type):
+# If it points to a reference, get the reference.
+ if gdb_type.code == gdb.TYPE_CODE_REF:
+ gdb_type = gdb_type.target ()
+
+# Get the unqualified type, stripped of typedefs.
+ gdb_type = gdb_type.unqualified ().strip_typedefs ()
+
+ return gdb_type
+
+ def _filter_types (self, gdb_type):
+ """Filters the given type and returns a name to pass to the
+ pretty_printers_dict or None."""
+ gdb_type = self._canonical_type (gdb_type)
+
+ return gdb_type
+
+ def __call__ (self, val):
+ "Returns a pretty-printer that can print val or None."
+ typename = self._filter_types (val.type)
+ if typename == None:
+ return None
+
+ for regex in self.pretty_printers_dict:
+ if regex.match (str (typename)):
+ return self.pretty_printers_dict[regex] (val)
+
+ return None
+
+class RELookupFunctionTag (RELookupFunction):
+ """Similar to RELookupFunction, but when trying to match to type.tag.
+ Useful for ``struct``, ``union``, or ``enum`` in C or C++."""
+
+ def __init__ (self, pretty_printers_dict):
+ super (RELookupFunctionTag, self).__init__ (pretty_printers_dict)
+
+ def _filter_types (self, gdb_type):
+ """Filters the given type and returns a name to pass to the
+ pretty_printers_dict or None."""
+ gdb_type = self._canonical_type (gdb_type)
+
+ return gdb_type.tag
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.py b/gdb/testsuite/gdb.python/py-prettyprint.py
index 9a0d107..84682a8 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint.py
@@ -18,6 +18,8 @@
import re
+from gdb.pretty.lookup_function import RELookupFunctionTag
+
# Test returning a Value from a printer.
class string_print:
def __init__(self, val):
@@ -137,37 +139,6 @@ class pp_outer:
yield 's', self.val['s']
yield 'x', self.val['x']
-def lookup_function (val):
- "Look-up and return a pretty-printer that can print val."
-
- # Get the type.
- type = val.type
-
- # If it points to a reference, get the reference.
- if type.code == gdb.TYPE_CODE_REF:
- type = type.target ()
-
- # Get the unqualified type, stripped of typedefs.
- type = type.unqualified ().strip_typedefs ()
-
- # Get the type name.
- typename = type.tag
-
- if typename == None:
- return None
-
- # Iterate over local dictionary of types to determine
- # if a printer is registered for that type. Return an
- # instantiation of the printer if found.
- for function in pretty_printers_dict:
- if function.match (typename):
- return pretty_printers_dict[function] (val)
-
- # Cannot find a pretty printer. Return None.
-
- return None
-
-
def register_pretty_printers ():
pretty_printers_dict[re.compile ('^struct s$')] = pp_s
pretty_printers_dict[re.compile ('^s$')] = pp_s
@@ -203,6 +174,6 @@ def register_pretty_printers ():
pretty_printers_dict[re.compile ('^outerstruct$')] = pp_outer
pretty_printers_dict = {}
-
register_pretty_printers ()
+lookup_function = RELookupFunctionTag (pretty_printers_dict)
gdb.pretty_printers.append (lookup_function)
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] [python] Create gdb.pretty package.
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
@ 2010-01-18 7:57 ` Matt McCormick
2010-01-18 8:05 ` [Archer] " Joel Brobecker
2010-01-18 7:57 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
2010-01-18 7:57 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
2 siblings, 1 reply; 9+ messages in thread
From: Matt McCormick @ 2010-01-18 7:57 UTC (permalink / raw)
To: archer
A gdb.pretty Python package for holding code common for using Python
pretty-printers.
gdb/ChangeLog
2009-30-12 Matt McCormick <matt@mmmccormick.com>
* python/lib/gdb/pretty/__init__.py: New python package.
* Makefile.in: Install it.
---
gdb/Makefile.in | 3 ++-
gdb/python/lib/gdb/pretty/__init__.py | 16 ++++++++++++++++
2 files changed, 18 insertions(+), 1 deletions(-)
create mode 100644 gdb/python/lib/gdb/pretty/__init__.py
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index f450a7b..e9055b1 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2074,7 +2074,8 @@ PY_FILES = gdb/FrameIterator.py gdb/FrameWrapper.py gdb/command/alias.py \
gdb/command/pahole.py gdb/command/upto.py gdb/command/__init__.py \
gdb/command/ignore_errors.py gdb/command/save_breakpoints.py \
gdb/function/caller_is.py gdb/function/in_scope.py \
- gdb/function/__init__.py gdb/backtrace.py gdb/__init__.py
+ gdb/function/__init__.py gdb/backtrace.py gdb/__init__.py \
+ gdb/pretty/__init__.py
# Install the Python library. Python library files go under
# $(pythondir).
diff --git a/gdb/python/lib/gdb/pretty/__init__.py b/gdb/python/lib/gdb/pretty/__init__.py
new file mode 100644
index 0000000..be8a854
--- /dev/null
+++ b/gdb/python/lib/gdb/pretty/__init__.py
@@ -0,0 +1,16 @@
+# Package for code common to custom pretty-printers.
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Archer] [PATCH 1/3] [python] Create gdb.pretty package.
2010-01-18 7:57 ` [PATCH 1/3] [python] Create gdb.pretty package Matt McCormick
@ 2010-01-18 8:05 ` Joel Brobecker
2010-01-18 16:20 ` Matthew McCormick (thewtex)
0 siblings, 1 reply; 9+ messages in thread
From: Joel Brobecker @ 2010-01-18 8:05 UTC (permalink / raw)
To: Matt McCormick; +Cc: archer
> A gdb.pretty Python package for holding code common for using Python
> pretty-printers.
Any reason why this is not submitted to gdb-patches? There is a modest
ongoing development effort to provide pretty-printers for the GDB types,
and we would very likely use this code.
--
Joel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Archer] [PATCH 1/3] [python] Create gdb.pretty package.
2010-01-18 8:05 ` [Archer] " Joel Brobecker
@ 2010-01-18 16:20 ` Matthew McCormick (thewtex)
0 siblings, 0 replies; 9+ messages in thread
From: Matthew McCormick (thewtex) @ 2010-01-18 16:20 UTC (permalink / raw)
To: Joel Brobecker; +Cc: archer
On Mon, Jan 18, 2010 at 2:05 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>> A gdb.pretty Python package for holding code common for using Python
>> pretty-printers.
>
> Any reason why this is not submitted to gdb-patches? There is a modest
> ongoing development effort to provide pretty-printers for the GDB types,
> and we would very likely use this code.
>
Joel, the work to create gdb-gdb.py looks cool, and this would be
helpful there too.
My patches were based off archer-tromey-python, so I thought this was
the right place to post it, but if I can get it upstream by submitting
to gdb-patches, I will do so.
These are the beginning, and other patches are in the queue for
submission. I hope to send a screencast demonstrating the goal they
are reaching to this mailing list soon.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-01-18 16:20 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-31 15:00 [PATCH 1/3] [rfc][python] Create gdb.python package Matt McCormick
2009-12-31 15:00 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
2009-12-31 15:00 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
2010-01-18 3:43 ` [PATCH 2/3] [python] Create gdb.pretty.register Matthew McCormick (thewtex)
2010-01-18 7:57 ` [PATCH 1/3] [python] Create gdb.pretty package Matt McCormick
2010-01-18 8:05 ` [Archer] " Joel Brobecker
2010-01-18 16:20 ` Matthew McCormick (thewtex)
2010-01-18 7:57 ` [PATCH 3/3] [python] Create pretty-printer lookup_function classes Matt McCormick
2010-01-18 7:57 ` [PATCH 2/3] [python] Create gdb.pretty.register Matt McCormick
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).