| Index: gdb/python/lib/gdb/command/explore.py
|
| diff --git a/gdb/python/lib/gdb/command/explore.py b/gdb/python/lib/gdb/command/explore.py
|
| index aad36717f8fb72469921709aafd18db23994bd51..dd77875dc1d2d55f5245e98679e09da5f66f6f27 100644
|
| --- a/gdb/python/lib/gdb/command/explore.py
|
| +++ b/gdb/python/lib/gdb/command/explore.py
|
| @@ -1,5 +1,5 @@
|
| # GDB 'explore' command.
|
| -# Copyright (C) 2012 Free Software Foundation, Inc.
|
| +# Copyright (C) 2012-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
|
| @@ -17,7 +17,12 @@
|
| """Implementation of the GDB 'explore' command using the GDB Python API."""
|
|
|
| import gdb
|
| +import sys
|
|
|
| +if sys.version_info[0] > 2:
|
| + # Python 3 renamed raw_input to input
|
| + raw_input = input
|
| +
|
| class Explorer(object):
|
| """Internal class which invokes other explorers."""
|
|
|
| @@ -155,7 +160,7 @@ class Explorer(object):
|
| """A utility function which prints that the current exploration session
|
| is returning to the parent value. Useful when exploring values.
|
| """
|
| - print "\nReturning to parent value...\n"
|
| + print ("\nReturning to parent value...\n")
|
|
|
| @staticmethod
|
| def return_to_parent_value_prompt():
|
| @@ -170,7 +175,7 @@ class Explorer(object):
|
| """A utility function which prints that the current exploration session
|
| is returning to the enclosing type. Useful when exploring types.
|
| """
|
| - print "\nReturning to enclosing type...\n"
|
| + print ("\nReturning to enclosing type...\n")
|
|
|
| @staticmethod
|
| def return_to_enclosing_type_prompt():
|
| @@ -192,7 +197,7 @@ class ScalarExplorer(object):
|
| """
|
| print ("'%s' is a scalar value of type '%s'." %
|
| (expr, value.type))
|
| - print "%s = %s" % (expr, str(value))
|
| + print ("%s = %s" % (expr, str(value)))
|
|
|
| if is_child:
|
| Explorer.return_to_parent_value_prompt()
|
| @@ -211,13 +216,13 @@ class ScalarExplorer(object):
|
| print ("%s is of an enumerated type '%s'." %
|
| (name, str(datatype)))
|
| else:
|
| - print "'%s' is an enumerated type." % name
|
| + print ("'%s' is an enumerated type." % name)
|
| else:
|
| if is_child:
|
| print ("%s is of a scalar type '%s'." %
|
| (name, str(datatype)))
|
| else:
|
| - print "'%s' is a scalar type." % name
|
| + print ("'%s' is a scalar type." % name)
|
|
|
| if is_child:
|
| Explorer.return_to_enclosing_type_prompt()
|
| @@ -268,7 +273,7 @@ class PointerExplorer(object):
|
| try:
|
| str(element)
|
| except gdb.MemoryError:
|
| - print "Cannot read value at index %d." % index
|
| + print ("Cannot read value at index %d." % index)
|
| continue
|
| Explorer.explore_expr(element_expr, element, True)
|
| return False
|
| @@ -338,7 +343,7 @@ class ArrayExplorer(object):
|
| element = value[index]
|
| str(element)
|
| except gdb.MemoryError:
|
| - print "Cannot read value at index %d." % index
|
| + print ("Cannot read value at index %d." % index)
|
| raw_input("Press enter to continue... ")
|
| return True
|
|
|
| @@ -352,7 +357,7 @@ class ArrayExplorer(object):
|
| See Explorer.explore_type for more information.
|
| """
|
| target_type = datatype.target()
|
| - print "%s is an array of '%s'." % (name, str(target_type))
|
| + print ("%s is an array of '%s'." % (name, str(target_type)))
|
|
|
| Explorer.explore_type("the array element of %s" % name, target_type,
|
| is_child)
|
| @@ -371,9 +376,8 @@ class CompoundExplorer(object):
|
| if max_field_name_length < len(pair[0]):
|
| max_field_name_length = len(pair[0])
|
|
|
| - format_str = " {0:>%d} = {1}" % max_field_name_length
|
| for pair in print_list:
|
| - print format_str.format(pair[0], pair[1])
|
| + print (" %*s = %s" % (max_field_name_length, pair[0], pair[1]))
|
|
|
| @staticmethod
|
| def _get_real_field_count(fields):
|
| @@ -447,7 +451,7 @@ class CompoundExplorer(object):
|
| print_list.append((field.name, literal_value))
|
|
|
| CompoundExplorer._print_fields(print_list)
|
| - print ""
|
| + print ("")
|
|
|
| if has_explorable_fields:
|
| choice = raw_input("Enter the field number of choice: ")
|
| @@ -458,7 +462,7 @@ class CompoundExplorer(object):
|
| return True
|
| else:
|
| if is_child:
|
| - Explorer.returning_to_parent_value_message()
|
| + Explorer.return_to_parent_value()
|
| else:
|
| if is_child:
|
| Explorer.return_to_parent_value_prompt()
|
| @@ -484,7 +488,7 @@ class CompoundExplorer(object):
|
| (name, type_desc, str(datatype)))
|
| Explorer.return_to_enclosing_type_prompt()
|
| else:
|
| - print "'%s' is a %s with no fields." % (name, type_desc)
|
| + print ("'%s' is a %s with no fields." % (name, type_desc))
|
| return False
|
|
|
| if is_child:
|
| @@ -515,7 +519,7 @@ class CompoundExplorer(object):
|
| current_choice = current_choice + 1
|
|
|
| CompoundExplorer._print_fields(print_list)
|
| - print ""
|
| + print ("")
|
|
|
| if len(choice_to_compound_field_map) > 0:
|
| choice = raw_input("Enter the field number of choice: ")
|
| @@ -741,8 +745,9 @@ class ExploreTypeCommand(gdb.Command):
|
|
|
| value = ExploreUtils.get_value_from_str(arg_str)
|
| if value is not None:
|
| - print "'%s' is of type '%s'." % (arg_str, str(value.type))
|
| + print ("'%s' is of type '%s'." % (arg_str, str(value.type)))
|
| Explorer.explore_type(str(value.type), value.type, False)
|
| + return
|
|
|
| raise gdb.GdbError(("'%s' is not a type or value in the current "
|
| "context." % arg_str))
|
|
|