mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 14:06:23 +00:00
gdb: Fix python style
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>
This commit is contained in:
parent
6258ee56d2
commit
f1070b4380
2 changed files with 67 additions and 59 deletions
|
@ -8,7 +8,9 @@ if sys.version_info[0] >= 3:
|
|||
long = int
|
||||
|
||||
# This is not quite right, as local vars may override symname
|
||||
def read_global_var (symname):
|
||||
|
||||
|
||||
def read_global_var(symname):
|
||||
return gdb.selected_frame().read_var(symname)
|
||||
|
||||
|
||||
|
@ -43,14 +45,15 @@ def g_quark_to_string(quark):
|
|||
return None
|
||||
|
||||
##
|
||||
## imported from glib: gobject/gobject_gdb.py
|
||||
# imported from glib: gobject/gobject_gdb.py
|
||||
##
|
||||
|
||||
def g_type_to_typenode (gtype):
|
||||
def lookup_fundamental_type (typenode):
|
||||
|
||||
def g_type_to_typenode(gtype):
|
||||
def lookup_fundamental_type(typenode):
|
||||
if typenode == 0:
|
||||
return None
|
||||
val = read_global_var ("static_fundamental_type_nodes")
|
||||
val = read_global_var("static_fundamental_type_nodes")
|
||||
if val is None:
|
||||
return None
|
||||
return val[typenode >> 2].address
|
||||
|
@ -58,24 +61,26 @@ def g_type_to_typenode (gtype):
|
|||
gtype = long(gtype)
|
||||
typenode = gtype - gtype % 4
|
||||
if typenode > (255 << 2):
|
||||
typenode = gdb.Value(typenode).cast (gdb.lookup_type("TypeNode").pointer())
|
||||
typenode = gdb.Value(typenode).cast(gdb.lookup_type("TypeNode").pointer())
|
||||
else:
|
||||
typenode = lookup_fundamental_type (typenode)
|
||||
typenode = lookup_fundamental_type(typenode)
|
||||
return typenode
|
||||
|
||||
def g_type_to_name (gtype):
|
||||
|
||||
def g_type_to_name(gtype):
|
||||
typenode = g_type_to_typenode(gtype)
|
||||
if typenode != None:
|
||||
return g_quark_to_string (typenode["qname"])
|
||||
if typenode:
|
||||
return g_quark_to_string(typenode["qname"])
|
||||
return None
|
||||
|
||||
def g_type_name_from_instance (instance):
|
||||
|
||||
def g_type_name_from_instance(instance):
|
||||
if long(instance) != 0:
|
||||
try:
|
||||
inst = instance.cast (gdb.lookup_type("GTypeInstance").pointer())
|
||||
inst = instance.cast(gdb.lookup_type("GTypeInstance").pointer())
|
||||
klass = inst["g_class"]
|
||||
gtype = klass["g_type"]
|
||||
name = g_type_to_name (gtype)
|
||||
name = g_type_to_name(gtype)
|
||||
return name
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
|
|
@ -92,8 +92,8 @@ class GstObjectPrettyPrinter:
|
|||
|
||||
|
||||
GST_SECOND = 1000000000
|
||||
GST_CLOCK_TIME_NONE = 2**64-1
|
||||
GST_CLOCK_STIME_NONE = -2**63
|
||||
GST_CLOCK_TIME_NONE = (2 ** 64) - 1
|
||||
GST_CLOCK_STIME_NONE = -(2 ** 63)
|
||||
|
||||
|
||||
def format_time(n, signed=False):
|
||||
|
@ -361,8 +361,8 @@ class GdbGstCaps:
|
|||
def items(self):
|
||||
gdb_type = gdb.lookup_type("GstCapsArrayElement")
|
||||
for f in _g_array_iter(self.val["array"], gdb_type):
|
||||
yield(GdbCapsFeatures(f["features"]),
|
||||
GdbGstStructure(f["structure"]))
|
||||
yield (GdbCapsFeatures(f["features"]),
|
||||
GdbGstStructure(f["structure"]))
|
||||
|
||||
def __eq__(self, other):
|
||||
if self.size() != other.size():
|
||||
|
@ -401,7 +401,7 @@ class GdbGstCaps:
|
|||
s += "(" + tmp + ")"
|
||||
_gdb_write(indent, s)
|
||||
for val in structure.value_strings("%s: %s", False):
|
||||
_gdb_write(indent+1, val)
|
||||
_gdb_write(indent + 1, val)
|
||||
return s
|
||||
|
||||
|
||||
|
@ -438,7 +438,7 @@ class GdbGValue:
|
|||
if step == 1:
|
||||
v = "[ %d, %d ]" % (rmin, rmax)
|
||||
else:
|
||||
v = "[ %d, %d, %d ]" % (rmin*step, rmax*step, step)
|
||||
v = "[ %d, %d, %d ]" % (rmin * step, rmax * step, step)
|
||||
elif tname == "GstFractionRange":
|
||||
v = "[ %s, %s ]" % (GdbGValue(value[0]), GdbGValue(value[1]))
|
||||
elif tname in ("GstValueList", "GstValueArray"):
|
||||
|
@ -446,9 +446,9 @@ class GdbGValue:
|
|||
gdb_type = gdb.lookup_type("GArray").pointer()
|
||||
value = value[0]["v_pointer"].cast(gdb_type)
|
||||
v = "<"
|
||||
for l in _g_array_iter(value, gvalue_type):
|
||||
for array_val in _g_array_iter(value, gvalue_type):
|
||||
v += " " if v == "<" else ", "
|
||||
v += str(GdbGValue(l))
|
||||
v += str(GdbGValue(array_val))
|
||||
v += " >"
|
||||
elif tname in ("GEnum"):
|
||||
v = "%s(%s)" % (
|
||||
|
@ -490,7 +490,7 @@ class GdbGstStructure:
|
|||
f = item[i]
|
||||
key = g_quark_to_string(f["name"])
|
||||
value = GdbGValue(f["value"])
|
||||
yield(key, value)
|
||||
yield (key, value)
|
||||
|
||||
def value(self, key):
|
||||
for (k, value) in self.values():
|
||||
|
@ -527,7 +527,7 @@ class GdbGstStructure:
|
|||
else:
|
||||
_gdb_write(indent, "%s:" % (self.name()))
|
||||
for (key, value) in self.values():
|
||||
_gdb_write(indent+1, "%s: %s" % (key, str(value)))
|
||||
_gdb_write(indent + 1, "%s: %s" % (key, str(value)))
|
||||
|
||||
|
||||
class GdbGstSegment:
|
||||
|
@ -545,7 +545,7 @@ class GdbGstSegment:
|
|||
value = int(self.val[key])
|
||||
if skip is None or value != skip:
|
||||
_gdb_write(indent, "%s:%s %s" %
|
||||
(key, (8-len(key))*" ", self.format_value(value)))
|
||||
(key, (8 - len(key)) * " ", self.format_value(value)))
|
||||
|
||||
def print(self, indent, seqnum=None):
|
||||
s = "segment:"
|
||||
|
@ -558,14 +558,14 @@ class GdbGstSegment:
|
|||
applied = "(applied rate: %g)" % applied_rate
|
||||
else:
|
||||
applied = ""
|
||||
_gdb_write(indent+1, "rate: %g%s" % (rate, applied))
|
||||
self.print_optional(indent+1, "base", 0)
|
||||
self.print_optional(indent+1, "offset", 0)
|
||||
self.print_optional(indent+1, "start")
|
||||
self.print_optional(indent+1, "stop", GST_CLOCK_TIME_NONE)
|
||||
self.print_optional(indent+1, "time")
|
||||
self.print_optional(indent+1, "position")
|
||||
self.print_optional(indent+1, "duration", GST_CLOCK_TIME_NONE)
|
||||
_gdb_write(indent + 1, "rate: %g%s" % (rate, applied))
|
||||
self.print_optional(indent + 1, "base", 0)
|
||||
self.print_optional(indent + 1, "offset", 0)
|
||||
self.print_optional(indent + 1, "start")
|
||||
self.print_optional(indent + 1, "stop", GST_CLOCK_TIME_NONE)
|
||||
self.print_optional(indent + 1, "time")
|
||||
self.print_optional(indent + 1, "position")
|
||||
self.print_optional(indent + 1, "duration", GST_CLOCK_TIME_NONE)
|
||||
|
||||
|
||||
class GdbGstEvent:
|
||||
|
@ -596,7 +596,7 @@ class GdbGstEvent:
|
|||
caps.print(indent, "caps (seqnum: %s):" % seqnum)
|
||||
elif typestr == "stream-start":
|
||||
stream_id = self.structure().value("stream-id").value()
|
||||
_gdb_write(indent, "stream-start: (seqnum %s)" % seqnum)
|
||||
_gdb_write(indent, "stream-start: (seqnum %s)" % seqnum)
|
||||
_gdb_write(indent + 1, "stream-id: %s" % stream_id.string())
|
||||
elif typestr == "segment":
|
||||
segment = self.structure().value("segment").value()
|
||||
|
@ -610,7 +610,7 @@ class GdbGstEvent:
|
|||
structure = GdbGstStructure(s)
|
||||
_gdb_write(indent, "tag: %s (seqnum: %s)" % (name, seqnum))
|
||||
for (key, value) in structure.values():
|
||||
_gdb_write(indent+1, "%s: %s" % (key, str(value)))
|
||||
_gdb_write(indent + 1, "%s: %s" % (key, str(value)))
|
||||
else:
|
||||
self.structure().print(indent, "%s (seqnum: %s)" % (typestr, seqnum))
|
||||
|
||||
|
@ -623,7 +623,7 @@ class GdbGstBuffer:
|
|||
value = int(self.val[key])
|
||||
if skip is None or value != skip:
|
||||
_gdb_write(indent, "%s:%s %s" %
|
||||
(key, (8-len(key))*" ", format_func(value)))
|
||||
(key, (8 - len(key)) * " ", format_func(value)))
|
||||
|
||||
@save_memory_access_print("<inaccessible memory>")
|
||||
def print(self, indent):
|
||||
|
@ -647,8 +647,8 @@ class GdbGstBuffer:
|
|||
_gdb_write(indent, "%s:" % meta_type_name)
|
||||
indent += 1
|
||||
meta_info = str(meta.cast(gdb.lookup_type(meta_type_name)))
|
||||
for l in meta_info.split('\n'):
|
||||
_gdb_write(indent, l)
|
||||
for info in meta_info.split('\n'):
|
||||
_gdb_write(indent, info)
|
||||
indent -= 1
|
||||
meta_item = meta_item['next']
|
||||
else:
|
||||
|
@ -770,30 +770,30 @@ class GdbGstPad(GdbGstObject):
|
|||
first = True
|
||||
for ev in self.events():
|
||||
if first:
|
||||
_gdb_write(indent+1, "events:")
|
||||
_gdb_write(indent + 1, "events:")
|
||||
first = False
|
||||
ev.print(indent+2)
|
||||
ev.print(indent + 2)
|
||||
|
||||
if self.is_linked():
|
||||
real = self.peer().parent_pad()
|
||||
_gdb_write(indent+1, "peer: %s" %
|
||||
_gdb_write(indent + 1, "peer: %s" %
|
||||
(real.full_name() if real else self.peer().full_name()))
|
||||
|
||||
if g_inherits_type(self.val, "GstGhostPad"):
|
||||
t = gdb.lookup_type("GstProxyPad").pointer()
|
||||
internal = GdbGstPad(self.val.cast(t)["priv"]["internal"])
|
||||
if internal and internal.peer():
|
||||
_gdb_write(indent+1, "inner peer: %s" %
|
||||
_gdb_write(indent + 1, "inner peer: %s" %
|
||||
internal.peer().full_name())
|
||||
|
||||
task = self.val["task"]
|
||||
if long(task) != 0:
|
||||
_gdb_write(indent+1, "task: %s" %
|
||||
_gdb_write(indent + 1, "task: %s" %
|
||||
task_state_to_name(int(task["state"])))
|
||||
|
||||
offset = long(self.val["offset"])
|
||||
if offset != 0:
|
||||
_gdb_write(indent+1, "offset: %d [%s]" %
|
||||
_gdb_write(indent + 1, "offset: %d [%s]" %
|
||||
(offset, format_time(offset, True)))
|
||||
|
||||
_gdb_write(indent, "}")
|
||||
|
@ -852,10 +852,10 @@ class GdbGstPad(GdbGstObject):
|
|||
other_pname = other.dot_name()
|
||||
if direction == "GST_PAD_SRC":
|
||||
s += "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n" % \
|
||||
(spc, other_ename, other_pname, ename, pname)
|
||||
(spc, other_ename, other_pname, ename, pname)
|
||||
else:
|
||||
s += "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n" % \
|
||||
(spc, ename, pname, other_ename, other_pname)
|
||||
(spc, ename, pname, other_ename, other_pname)
|
||||
else:
|
||||
if direction == "GST_PAD_SRC":
|
||||
color = "#ffaaaa"
|
||||
|
@ -887,11 +887,11 @@ class GdbGstPad(GdbGstObject):
|
|||
|
||||
if caps and peer_caps and caps == peer_caps:
|
||||
s = "%s%s_%s -> %s_%s [label=\"%s\"]\n" % \
|
||||
(spc, ename, pname, peer_ename, peer_pname, caps.dot())
|
||||
(spc, ename, pname, peer_ename, peer_pname, caps.dot())
|
||||
elif caps and peer_caps and caps != peer_caps:
|
||||
s = "%s%s_%s -> %s_%s [labeldistance=\"10\", labelangle=\"0\", " \
|
||||
% (spc, ename, pname, peer_ename, peer_pname)
|
||||
s += "label=\"" + " "*50 + "\", "
|
||||
s += "label=\"" + " " * 50 + "\", "
|
||||
if self.direction() == "GST_PAD_SRC":
|
||||
media_src = caps.dot()
|
||||
media_dst = peer_caps.dot()
|
||||
|
@ -948,14 +948,14 @@ class GdbGstElement(GdbGstObject):
|
|||
_gdb_write(indent, "%s(%s) {" %
|
||||
(g_type_name_from_instance(self.val), self.name()))
|
||||
for p in self.pads():
|
||||
p.print(indent+2)
|
||||
p.print(indent + 2)
|
||||
|
||||
first = True
|
||||
for child in self.children():
|
||||
if first:
|
||||
_gdb_write(indent+2, "children:")
|
||||
_gdb_write(indent + 2, "children:")
|
||||
first = False
|
||||
_gdb_write(indent+3, child.name())
|
||||
_gdb_write(indent + 3, child.name())
|
||||
|
||||
current_state = self.val["current_state"]
|
||||
s = "state: %s" % element_state_to_name(current_state)
|
||||
|
@ -963,11 +963,11 @@ class GdbGstElement(GdbGstObject):
|
|||
state = self.val[var + "_state"]
|
||||
if state > 0 and state != current_state:
|
||||
s += ", %s: %s" % (var, element_state_to_name(state))
|
||||
_gdb_write(indent+2, s)
|
||||
_gdb_write(indent + 2, s)
|
||||
|
||||
_gdb_write(indent+2, "base_time: %s" %
|
||||
_gdb_write(indent + 2, "base_time: %s" %
|
||||
format_time_value(self.val["base_time"]))
|
||||
_gdb_write(indent+2, "start_time: %s" %
|
||||
_gdb_write(indent + 2, "start_time: %s" %
|
||||
format_time_value(self.val["start_time"]))
|
||||
|
||||
_gdb_write(indent, "}")
|
||||
|
@ -976,7 +976,7 @@ class GdbGstElement(GdbGstObject):
|
|||
def print_tree(self, indent):
|
||||
_gdb_write(indent, "%s(%s)" % (self.name(), self.val))
|
||||
for child in self.children():
|
||||
child.print_tree(indent+1)
|
||||
child.print_tree(indent + 1)
|
||||
|
||||
def _dot(self, indent=0):
|
||||
spc = " " * indent
|
||||
|
@ -992,12 +992,12 @@ class GdbGstElement(GdbGstObject):
|
|||
|
||||
sink_name = None
|
||||
if self.has_pads("sinkpads"):
|
||||
(ss, sink_name) = self._dot_pads(indent+1, "sinkpads",
|
||||
(ss, sink_name) = self._dot_pads(indent + 1, "sinkpads",
|
||||
self.dot_name() + "_sink")
|
||||
s += ss
|
||||
src_name = None
|
||||
if self.has_pads("srcpads"):
|
||||
(ss, src_name) = self._dot_pads(indent+1, "srcpads",
|
||||
(ss, src_name) = self._dot_pads(indent + 1, "srcpads",
|
||||
self.dot_name() + "_src")
|
||||
s += ss
|
||||
if sink_name and src_name:
|
||||
|
@ -1007,7 +1007,7 @@ class GdbGstElement(GdbGstObject):
|
|||
|
||||
if gst_is_bin(self.val):
|
||||
s += "%s fillcolor=\"#ffffff\";\n" % spc
|
||||
s += self.dot(indent+1)
|
||||
s += self.dot(indent + 1)
|
||||
else:
|
||||
if src_name and not sink_name:
|
||||
s += "%s fillcolor=\"#ffaaaa\";\n" % spc
|
||||
|
@ -1042,7 +1042,7 @@ class GdbGstElement(GdbGstObject):
|
|||
if not name:
|
||||
name = p.dot_name()
|
||||
s += "%s}\n\n" % spc
|
||||
return(s, name)
|
||||
return (s, name)
|
||||
|
||||
def dot(self, indent):
|
||||
s = ""
|
||||
|
@ -1097,6 +1097,7 @@ GST_DEBUG_BIN_TO_DOT_FILE. This command will find the top-level parent
|
|||
for the given gstreamer object and create the dot for that element.
|
||||
|
||||
Usage: gst-dot <gst-object> <file-name>"""
|
||||
|
||||
def __init__(self):
|
||||
super(GstDot, self).__init__("gst-dot", gdb.COMMAND_DATA)
|
||||
|
||||
|
@ -1120,7 +1121,7 @@ Usage: gst-dot <gst-object> <file-name>"""
|
|||
|
||||
def complete(self, text, word):
|
||||
cmd = gdb.string_to_argv(text)
|
||||
if len(cmd) == 0 or(len(cmd) == 1 and len(word) > 0):
|
||||
if len(cmd) == 0 or (len(cmd) == 1 and len(word) > 0):
|
||||
return gdb.COMPLETE_SYMBOL
|
||||
return gdb.COMPLETE_FILENAME
|
||||
|
||||
|
@ -1130,6 +1131,7 @@ class GstPrint(gdb.Command):
|
|||
Print high-level information for GStreamer objects
|
||||
|
||||
Usage gst-print <gstreamer-object>"""
|
||||
|
||||
def __init__(self):
|
||||
super(GstPrint, self).__init__("gst-print", gdb.COMMAND_DATA,
|
||||
gdb.COMPLETE_SYMBOL)
|
||||
|
@ -1165,6 +1167,7 @@ Usage gst-print <gstreamer-object>"""
|
|||
class GstPipelineTree(gdb.Command):
|
||||
"""\
|
||||
Usage: gst-pipeline-tree <gst-object>"""
|
||||
|
||||
def __init__(self):
|
||||
super(GstPipelineTree, self).__init__("gst-pipeline-tree",
|
||||
gdb.COMPLETE_SYMBOL)
|
||||
|
|
Loading…
Reference in a new issue