From 91e159e93b273af462b9999122af9a69980d88e1 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 17 May 2021 14:31:00 -0400 Subject: [PATCH] gdb: add pyproject.toml When running black to format Python files, files with extension .py.in are ignored, because they don't end in .py. Add a pyproject.toml file to instruct black to pick up these files too. gdb/ChangeLog: * py-project.toml: New. * gdb-gdb.py.in: Re-format. gdb/testsuite/ChangeLog: * gdb.python/py-framefilter-gdb.py.in: Re-format. * gdb.python/py-framefilter-invalidarg-gdb.py.in: Re-format. Change-Id: I9b88faec3360ea24788f44c8b89fe0b2a5f4eb97 --- gdb/ChangeLog | 5 + gdb/gdb-gdb.py.in | 160 +++++++++--------- gdb/pyproject.toml | 2 + gdb/testsuite/ChangeLog | 5 + .../gdb.python/py-framefilter-gdb.py.in | 22 +-- .../py-framefilter-invalidarg-gdb.py.in | 22 +-- 6 files changed, 117 insertions(+), 99 deletions(-) create mode 100644 gdb/pyproject.toml diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1e6b52ad19d..0014d75fbb8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2021-05-17 Simon Marchi + + * py-project.toml: New. + * gdb-gdb.py.in: Re-format. + 2021-05-17 Simon Marchi * cli/cli-decode.h (cmd_list_element) : diff --git a/gdb/gdb-gdb.py.in b/gdb/gdb-gdb.py.in index f58b3073d5c..af9fcfedc2f 100644 --- a/gdb/gdb-gdb.py.in +++ b/gdb/gdb-gdb.py.in @@ -39,7 +39,7 @@ class TypeFlag: def __init__(self, name, value): self.name = name self.value = value - self.short_name = name.replace("TYPE_INSTANCE_FLAG_", '') + self.short_name = name.replace("TYPE_INSTANCE_FLAG_", "") def __lt__(self, other): """Sort by value order.""" @@ -73,8 +73,9 @@ class TypeFlagsPrinter: if not self.val: return "0" if TYPE_FLAGS: - flag_list = [flag.short_name for flag in TYPE_FLAGS - if self.val & flag.value] + flag_list = [ + flag.short_name for flag in TYPE_FLAGS if self.val & flag.value + ] else: flag_list = ["???"] return "0x%x [%s]" % (self.val, "|".join(flag_list)) @@ -96,8 +97,7 @@ class TypeFlagsPrinter: print("Warning: Cannot find enum type_instance_flag_value type.") print(" `struct type' pretty-printer will be degraded") return - TYPE_FLAGS = [TypeFlag(field.name, field.enumval) - for field in iflags.fields()] + TYPE_FLAGS = [TypeFlag(field.name, field.enumval) for field in iflags.fields()] TYPE_FLAGS.sort() @@ -109,13 +109,14 @@ class StructTypePrettyPrinter: def to_string(self): fields = [] - fields.append("pointer_type = %s" % self.val['pointer_type']) - fields.append("reference_type = %s" % self.val['reference_type']) - fields.append("chain = %s" % self.val['reference_type']) - fields.append("instance_flags = %s" - % TypeFlagsPrinter(self.val['m_instance_flags'])) - fields.append("length = %d" % self.val['length']) - fields.append("main_type = %s" % self.val['main_type']) + fields.append("pointer_type = %s" % self.val["pointer_type"]) + fields.append("reference_type = %s" % self.val["reference_type"]) + fields.append("chain = %s" % self.val["reference_type"]) + fields.append( + "instance_flags = %s" % TypeFlagsPrinter(self.val["m_instance_flags"]) + ) + fields.append("length = %d" % self.val["length"]) + fields.append("main_type = %s" % self.val["main_type"]) return "\n{" + ",\n ".join(fields) + "}" @@ -134,78 +135,77 @@ class StructMainTypePrettyPrinter: flag_unsigned and flag_static are the only components set to 1, this function will return "unsigned|static". """ - fields = [field.name.replace("flag_", "") - for field in self.val.type.fields() - if field.name.startswith("flag_") and self.val[field.name]] + fields = [ + field.name.replace("flag_", "") + for field in self.val.type.fields() + if field.name.startswith("flag_") and self.val[field.name] + ] return "|".join(fields) def owner_to_string(self): - """Return an image of component "owner". - """ - if self.val['m_flag_objfile_owned'] != 0: - return "%s (objfile)" % self.val['m_owner']['objfile'] + """Return an image of component "owner".""" + if self.val["m_flag_objfile_owned"] != 0: + return "%s (objfile)" % self.val["m_owner"]["objfile"] else: - return "%s (gdbarch)" % self.val['m_owner']['gdbarch'] + return "%s (gdbarch)" % self.val["m_owner"]["gdbarch"] def struct_field_location_img(self, field_val): """Return an image of the loc component inside the given field gdb.Value. """ - loc_val = field_val['loc'] - loc_kind = str(field_val['loc_kind']) + loc_val = field_val["loc"] + loc_kind = str(field_val["loc_kind"]) if loc_kind == "FIELD_LOC_KIND_BITPOS": - return 'bitpos = %d' % loc_val['bitpos'] + return "bitpos = %d" % loc_val["bitpos"] elif loc_kind == "FIELD_LOC_KIND_ENUMVAL": - return 'enumval = %d' % loc_val['enumval'] + return "enumval = %d" % loc_val["enumval"] elif loc_kind == "FIELD_LOC_KIND_PHYSADDR": - return 'physaddr = 0x%x' % loc_val['physaddr'] + return "physaddr = 0x%x" % loc_val["physaddr"] elif loc_kind == "FIELD_LOC_KIND_PHYSNAME": - return 'physname = %s' % loc_val['physname'] + return "physname = %s" % loc_val["physname"] elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK": - return 'dwarf_block = %s' % loc_val['dwarf_block'] + return "dwarf_block = %s" % loc_val["dwarf_block"] else: - return 'loc = ??? (unsupported loc_kind value)' + return "loc = ??? (unsupported loc_kind value)" def struct_field_img(self, fieldno): - """Return an image of the main_type field number FIELDNO. - """ - f = self.val['flds_bnds']['fields'][fieldno] + """Return an image of the main_type field number FIELDNO.""" + f = self.val["flds_bnds"]["fields"][fieldno] label = "flds_bnds.fields[%d]:" % fieldno - if f['artificial']: + if f["artificial"]: label += " (artificial)" fields = [] - fields.append("name = %s" % f['name']) - fields.append("type = %s" % f['m_type']) - fields.append("loc_kind = %s" % f['loc_kind']) - fields.append("bitsize = %d" % f['bitsize']) + fields.append("name = %s" % f["name"]) + fields.append("type = %s" % f["m_type"]) + fields.append("loc_kind = %s" % f["loc_kind"]) + fields.append("bitsize = %d" % f["bitsize"]) fields.append(self.struct_field_location_img(f)) return label + "\n" + " {" + ",\n ".join(fields) + "}" def bound_img(self, bound_name): """Return an image of the given main_type's bound.""" - bounds = self.val['flds_bnds']['bounds'].dereference() + bounds = self.val["flds_bnds"]["bounds"].dereference() b = bounds[bound_name] - bnd_kind = str(b['m_kind']) - if bnd_kind == 'PROP_CONST': - return str(b['m_data']['const_val']) - elif bnd_kind == 'PROP_UNDEFINED': - return '(undefined)' + bnd_kind = str(b["m_kind"]) + if bnd_kind == "PROP_CONST": + return str(b["m_data"]["const_val"]) + elif bnd_kind == "PROP_UNDEFINED": + return "(undefined)" else: info = [bnd_kind] - if bound_name == 'high' and bounds['flag_upper_bound_is_count']: - info.append('upper_bound_is_count') - return '{} ({})'.format(str(b['m_data']['baton']), ','.join(info)) + if bound_name == "high" and bounds["flag_upper_bound_is_count"]: + info.append("upper_bound_is_count") + return "{} ({})".format(str(b["m_data"]["baton"]), ",".join(info)) def bounds_img(self): - """Return an image of the main_type bounds. - """ - b = self.val['flds_bnds']['bounds'].dereference() - low = self.bound_img('low') - high = self.bound_img('high') + """Return an image of the main_type bounds.""" + b = self.val["flds_bnds"]["bounds"].dereference() + low = self.bound_img("low") + high = self.bound_img("high") img = "flds_bnds.bounds = {%s, %s}" % (low, high) - if b['flag_bound_evaluated']: - img += ' [evaluated]' + if b["flag_bound_evaluated"]: + img += " [evaluated]" return img def type_specific_img(self): @@ -213,46 +213,53 @@ class StructMainTypePrettyPrinter: Only the relevant component of that union is printed (based on the value of the type_specific_kind field. """ - type_specific_kind = str(self.val['type_specific_field']) - type_specific = self.val['type_specific'] + type_specific_kind = str(self.val["type_specific_field"]) + type_specific = self.val["type_specific"] if type_specific_kind == "TYPE_SPECIFIC_NONE": - img = 'type_specific_field = %s' % type_specific_kind + img = "type_specific_field = %s" % type_specific_kind elif type_specific_kind == "TYPE_SPECIFIC_CPLUS_STUFF": - img = "cplus_stuff = %s" % type_specific['cplus_stuff'] + img = "cplus_stuff = %s" % type_specific["cplus_stuff"] elif type_specific_kind == "TYPE_SPECIFIC_GNAT_STUFF": - img = ("gnat_stuff = {descriptive_type = %s}" - % type_specific['gnat_stuff']['descriptive_type']) + img = ( + "gnat_stuff = {descriptive_type = %s}" + % type_specific["gnat_stuff"]["descriptive_type"] + ) elif type_specific_kind == "TYPE_SPECIFIC_FLOATFORMAT": - img = "floatformat[0..1] = %s" % type_specific['floatformat'] + img = "floatformat[0..1] = %s" % type_specific["floatformat"] elif type_specific_kind == "TYPE_SPECIFIC_FUNC": - img = ("calling_convention = %d" - % type_specific['func_stuff']['calling_convention']) + img = ( + "calling_convention = %d" + % 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'] + img = "self_type = %s" % type_specific["self_type"] elif type_specific_kind == "TYPE_SPECIFIC_FIXED_POINT": # The scaling factor is an opaque structure, so we cannot # decode its value from Python (not without insider knowledge). - img = ('scaling_factor: (call __gmpz_dump with ' - ' _mp_num and _mp_den fields if needed)') + img = ( + "scaling_factor: (call __gmpz_dump with " + " _mp_num and _mp_den fields if needed)" + ) else: - img = ("type_specific = ??? (unknown type_secific_kind: %s)" - % type_specific_kind) + img = ( + "type_specific = ??? (unknown type_secific_kind: %s)" + % type_specific_kind + ) return img def to_string(self): - """Return a pretty-printed image of our main_type. - """ + """Return a pretty-printed image of our main_type.""" fields = [] - fields.append("name = %s" % self.val['name']) - fields.append("code = %s" % self.val['code']) + fields.append("name = %s" % self.val["name"]) + fields.append("code = %s" % self.val["code"]) 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']) - if self.val['nfields'] > 0: - for fieldno in range(self.val['nfields']): + fields.append("target_type = %s" % self.val["target_type"]) + if self.val["nfields"] > 0: + for fieldno in range(self.val["nfields"]): fields.append(self.struct_field_img(fieldno)) - if self.val['code'] == gdb.TYPE_CODE_RANGE: + if self.val["code"] == gdb.TYPE_CODE_RANGE: fields.append(self.bounds_img()) fields.append(self.type_specific_img()) @@ -277,14 +284,13 @@ def type_lookup_function(val): return StructTypePrettyPrinter(val) elif val.type.tag == "main_type": return StructMainTypePrettyPrinter(val) - elif val.type.name == 'CORE_ADDR': + elif val.type.name == "CORE_ADDR": return CoreAddrPrettyPrinter(val) return None def register_pretty_printer(objfile): - """A routine to register a pretty-printer against the given OBJFILE. - """ + """A routine to register a pretty-printer against the given OBJFILE.""" objfile.pretty_printers.append(type_lookup_function) diff --git a/gdb/pyproject.toml b/gdb/pyproject.toml new file mode 100644 index 00000000000..58ed2f9d556 --- /dev/null +++ b/gdb/pyproject.toml @@ -0,0 +1,2 @@ +[tool.black] +include = "\\.py(\\.in)?$" diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5a0159ffe6e..69d00ff8cea 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-05-17 Simon Marchi + + * gdb.python/py-framefilter-gdb.py.in: Re-format. + * gdb.python/py-framefilter-invalidarg-gdb.py.in: Re-format. + 2021-05-17 Bhuvanendra Kumar N * gdb.base/class-allocatable-array.exp: Modified test for clang. diff --git a/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in b/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in index c9256343b14..d2205f41e20 100644 --- a/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in +++ b/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in @@ -20,29 +20,29 @@ import itertools from gdb.FrameDecorator import FrameDecorator -class FrameObjFile (): - - def __init__ (self): +class FrameObjFile: + def __init__(self): self.name = "Filter1" self.priority = 1 self.enabled = False - gdb.current_progspace().frame_filters ["Progspace" + self.name] = self - gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self + gdb.current_progspace().frame_filters["Progspace" + self.name] = self + gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self - def filter (self, frame_iter): + def filter(self, frame_iter): return frame_iter -class FrameObjFile2 (): - def __init__ (self): +class FrameObjFile2: + def __init__(self): self.name = "Filter2" self.priority = 100 self.enabled = True - gdb.current_progspace().frame_filters ["Progspace" + self.name] = self - gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self + gdb.current_progspace().frame_filters["Progspace" + self.name] = self + gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self - def filter (self, frame_iter): + def filter(self, frame_iter): return frame_iter + FrameObjFile() FrameObjFile2() diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in index 7b4950535c2..e27b8985944 100644 --- a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in +++ b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in @@ -20,29 +20,29 @@ import itertools from gdb.FrameDecorator import FrameDecorator -class FrameObjFile (): - - def __init__ (self): +class FrameObjFile: + def __init__(self): self.name = "Filter1" self.priority = 1 self.enabled = False - gdb.current_progspace().frame_filters ["Progspace" + self.name] = self - gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self + gdb.current_progspace().frame_filters["Progspace" + self.name] = self + gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self - def filter (self, frame_iter): + def filter(self, frame_iter): return frame_iter -class FrameObjFile2 (): - def __init__ (self): +class FrameObjFile2: + def __init__(self): self.name = "Filter2" self.priority = 100 self.enabled = True - gdb.current_progspace().frame_filters ["Progspace" + self.name] = self - gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self + gdb.current_progspace().frame_filters["Progspace" + self.name] = self + gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self - def filter (self, frame_iter): + def filter(self, frame_iter): return frame_iter + FrameObjFile() FrameObjFile2() -- 2.30.2