Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: gdb/testsuite/gdb.python/py-prettyprint.py

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/testsuite/gdb.python/py-prettyprint.exp ('k') | gdb/testsuite/gdb.python/py-progspace.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/testsuite/gdb.python/py-prettyprint.py
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.py b/gdb/testsuite/gdb.python/py-prettyprint.py
index 6e960e6805d543b78112ef7f9a55e4201c2ba426..f3894c374c0daf292facadfa57243b6523447a2e 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2012 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 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
@@ -19,8 +19,25 @@
import re
import gdb
+def _iterator (pointer, len):
+ start = pointer
+ end = pointer + len
+ while pointer != end:
+ yield ('[%d]' % int (pointer - start), pointer.dereference())
+ pointer += 1
+
+# Same as _iterator but can be told to raise an exception.
+def _iterator_except (pointer, len):
+ start = pointer
+ end = pointer + len
+ while pointer != end:
+ if exception_flag:
+ raise gdb.MemoryError ('hi bob')
+ yield ('[%d]' % int (pointer - start), pointer.dereference())
+ pointer += 1
+
# Test returning a Value from a printer.
-class string_print:
+class string_print (object):
def __init__(self, val):
self.val = val
@@ -28,22 +45,7 @@ class string_print:
return self.val['whybother']['contents']
# Test a class-based printer.
-class ContainerPrinter:
- class _iterator:
- def __init__ (self, pointer, len):
- self.start = pointer
- self.pointer = pointer
- self.end = pointer + len
-
- def __iter__(self):
- return self
-
- def next(self):
- if self.pointer == self.end:
- raise StopIteration
- result = self.pointer
- self.pointer = self.pointer + 1
- return ('[%d]' % int (result - self.start), result.dereference())
+class ContainerPrinter (object):
def __init__(self, val):
self.val = val
@@ -52,31 +54,27 @@ class ContainerPrinter:
return 'container %s with %d elements' % (self.val['name'], self.val['len'])
def children(self):
- return self._iterator(self.val['elements'], self.val['len'])
+ return _iterator(self.val['elements'], self.val['len'])
+
+# Treats a container as array.
+class ArrayPrinter (object):
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ return 'array %s with %d elements' % (self.val['name'], self.val['len'])
+
+ def children(self):
+ return _iterator(self.val['elements'], self.val['len'])
+
+ def display_hint (self):
+ return 'array'
# Flag to make NoStringContainerPrinter throw an exception.
exception_flag = False
# Test a printer where to_string is None
-class NoStringContainerPrinter:
- class _iterator:
- def __init__ (self, pointer, len):
- self.start = pointer
- self.pointer = pointer
- self.end = pointer + len
-
- def __iter__(self):
- return self
-
- def next(self):
- if self.pointer == self.end:
- raise StopIteration
- if exception_flag:
- raise gdb.MemoryError, 'hi bob'
- result = self.pointer
- self.pointer = self.pointer + 1
- return ('[%d]' % int (result - self.start), result.dereference())
-
+class NoStringContainerPrinter (object):
def __init__(self, val):
self.val = val
@@ -84,9 +82,9 @@ class NoStringContainerPrinter:
return None
def children(self):
- return self._iterator(self.val['elements'], self.val['len'])
+ return _iterator_except (self.val['elements'], self.val['len'])
-class pp_s:
+class pp_s (object):
def __init__(self, val):
self.val = val
@@ -97,42 +95,42 @@ class pp_s:
raise Exception("&a(%s) != b(%s)" % (str(a.address), str(b)))
return " a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">"
-class pp_ss:
+class pp_ss (object):
def __init__(self, val):
self.val = val
def to_string(self):
return "a=<" + str(self.val["a"]) + "> b=<" + str(self.val["b"]) + ">"
-class pp_sss:
+class pp_sss (object):
def __init__(self, val):
self.val = val
def to_string(self):
return "a=<" + str(self.val['a']) + "> b=<" + str(self.val["b"]) + ">"
-class pp_multiple_virtual:
+class pp_multiple_virtual (object):
def __init__ (self, val):
self.val = val
def to_string (self):
return "pp value variable is: " + str (self.val['value'])
-class pp_vbase1:
+class pp_vbase1 (object):
def __init__ (self, val):
self.val = val
def to_string (self):
return "pp class name: " + self.val.type.tag
-class pp_nullstr:
+class pp_nullstr (object):
def __init__(self, val):
self.val = val
def to_string(self):
return self.val['s'].string(gdb.target_charset())
-class pp_ns:
+class pp_ns (object):
"Print a std::basic_string of some kind"
def __init__(self, val):
@@ -147,7 +145,7 @@ class pp_ns:
pp_ls_encoding = None
-class pp_ls:
+class pp_ls (object):
"Print a std::basic_string of some kind"
def __init__(self, val):
@@ -162,7 +160,7 @@ class pp_ls:
def display_hint (self):
return 'string'
-class pp_hint_error:
+class pp_hint_error (object):
"Throw error from display_hint"
def __init__(self, val):
@@ -174,7 +172,7 @@ class pp_hint_error:
def display_hint (self):
raise Exception("hint failed")
-class pp_children_as_list:
+class pp_children_as_list (object):
"Throw error from display_hint"
def __init__(self, val):
@@ -186,7 +184,7 @@ class pp_children_as_list:
def children (self):
return [('one', 1)]
-class pp_outer:
+class pp_outer (object):
"Print struct outer"
def __init__ (self, val):
@@ -199,24 +197,24 @@ class pp_outer:
yield 's', self.val['s']
yield 'x', self.val['x']
-class MemoryErrorString:
+class MemoryErrorString (object):
"Raise an error"
def __init__(self, val):
self.val = val
def to_string(self):
- raise gdb.MemoryError ("Cannot access memory.");
+ raise gdb.MemoryError ("Cannot access memory.")
def display_hint (self):
return 'string'
-class pp_eval_type:
+class pp_eval_type (object):
def __init__(self, val):
self.val = val
def to_string(self):
- gdb.execute("bt", to_string=True)
+ gdb.execute("bt", to_string=True)
return "eval=<" + str(gdb.parse_and_eval("eval_func (123456789, 2, 3, 4, 5, 6, 7, 8)")) + ">"
def lookup_function (val):
« no previous file with comments | « gdb/testsuite/gdb.python/py-prettyprint.exp ('k') | gdb/testsuite/gdb.python/py-progspace.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698