Allow gdb to find debug symbols file by build-id for PE file format also
[deliverable/binutils-gdb.git] / gdb / gdb-gdb.py
index 44133abd4988cfaff35c3a42612648181be125cb..61493b6bda5f80ee23f6aba5bf6306f0a30138b3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -23,8 +23,8 @@ class TypeFlag:
     and its value.
 
     In the GDB sources, struct type has a component called instance_flags
-    whose the value is the addition of various flags.  These flags are
-    defined by two emumerates: type_flag_value, and type_instance_flag_value.
+    in which the value is the addition of various flags.  These flags are
+    defined by two enumerates: type_flag_value, and type_instance_flag_value.
     This class helps us recreate a list with all these flags that is
     easy to manipulate and sort.  Because all flag names start with either
     TYPE_FLAG_ or TYPE_INSTANCE_FLAG_, a short_name attribute is provided
@@ -99,10 +99,10 @@ class TypeFlagsPrinter:
             return
         # Note: TYPE_FLAG_MIN is a duplicate of TYPE_FLAG_UNSIGNED,
         # so exclude it from the list we are building.
-        TYPE_FLAGS = [TypeFlag(field.name, field.bitpos)
+        TYPE_FLAGS = [TypeFlag(field.name, field.enumval)
                       for field in flags.fields()
                       if field.name != 'TYPE_FLAG_MIN']
-        TYPE_FLAGS += [TypeFlag(field.name, field.bitpos)
+        TYPE_FLAGS += [TypeFlag(field.name, field.enumval)
                        for field in iflags.fields()]
         TYPE_FLAGS.sort()
 
@@ -154,6 +154,8 @@ class StructMainTypePrettyPrinter:
         loc_kind = str(field_val['loc_kind'])
         if loc_kind == "FIELD_LOC_KIND_BITPOS":
             return 'bitpos = %d' % loc_val['bitpos']
+        elif loc_kind == "FIELD_LOC_KIND_ENUMVAL":
+            return 'enumval = %d' % loc_val['enumval']
         elif loc_kind == "FIELD_LOC_KIND_PHYSADDR":
             return 'physaddr = 0x%x' % loc_val['physaddr']
         elif loc_kind == "FIELD_LOC_KIND_PHYSNAME":
@@ -166,7 +168,7 @@ class StructMainTypePrettyPrinter:
         """Return an image of the main_type field number FIELDNO.
         """
         f = self.val['flds_bnds']['fields'][fieldno]
-        label = "field[%d]:" % fieldno
+        label = "flds_bnds.fields[%d]:" % fieldno
         if f['artificial']:
             label += " (artificial)"
         fields = []
@@ -186,7 +188,7 @@ class StructMainTypePrettyPrinter:
         high = str(b['high'])
         if b['high_undefined'] != 0:
             high += " (undefined)"
-        return "bounds = {%s, %s}" % (low, high)
+        return "flds_bnds.bounds = {%s, %s}" % (low, high)
     def type_specific_img(self):
         """Return a string image of the main_type type_specific union.
         Only the relevant component of that union is printed (based on
@@ -203,9 +205,12 @@ class StructMainTypePrettyPrinter:
                    % type_specific['gnat_stuff']['descriptive_type'])
         elif type_specific_kind == "TYPE_SPECIFIC_FLOATFORMAT":
             img = "floatformat[0..1] = %s" % type_specific['floatformat']
-        elif type_specific_kind == "TYPE_SPECIFIC_CALLING_CONVENTION":
+        elif type_specific_kind == "TYPE_SPECIFIC_FUNC":
             img = ("calling_convention = %d"
-                   % type_specific['calling_convention'])
+                   % type_specific['func_stuff']['calling_convention'])
+            # tail_call_list is not printed.
+        elif type_specific_kind == "TYPE_SPECIFIC_SELF_TYPE":
+            img = "self_type = %s" % type_specific['self_type']
         else:
             img = ("type_specific = ??? (unknown type_secific_kind: %s)"
                    % type_specific_kind)
@@ -221,11 +226,10 @@ class StructMainTypePrettyPrinter:
         fields.append("flags = [%s]" % self.flags_to_string())
         fields.append("owner = %s" % self.owner_to_string())
         fields.append("target_type = %s" % self.val['target_type'])
-        fields.append("vptr_basetype = %s" % self.val['vptr_basetype'])
         if self.val['nfields'] > 0:
             for fieldno in range(self.val['nfields']):
                 fields.append(self.struct_field_img(fieldno))
-        if self.val.type.code == gdb.TYPE_CODE_RANGE:
+        if self.val['code'] == gdb.TYPE_CODE_RANGE:
             fields.append(self.bounds_img())
         fields.append(self.type_specific_img())
 
This page took 0.025979 seconds and 4 git commands to generate.