提交 606bd60a 编写于 作者: A Adrian Hunter 提交者: Arnaldo Carvalho de Melo

perf scripts python: exported-sql-viewer.py: Fix python3 support

Unlike python2, python3 strings are not compatible with byte strings.
That results in disassembly not working for the branches reports. Fixup
those places overlooked in the port to python3.
Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Fixes: beda0e72 ("perf script python: Add Python3 support to exported-sql-viewer.py")
Link: http://lkml.kernel.org/r/20190327072826.19168-3-adrian.hunter@intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 8453c936
...@@ -2908,9 +2908,13 @@ class LibXED(): ...@@ -2908,9 +2908,13 @@ class LibXED():
ok = self.xed_format_context(2, inst.xedp, inst.bufferp, sizeof(inst.buffer), ip, 0, 0) ok = self.xed_format_context(2, inst.xedp, inst.bufferp, sizeof(inst.buffer), ip, 0, 0)
if not ok: if not ok:
return 0, "" return 0, ""
if sys.version_info[0] == 2:
result = inst.buffer.value
else:
result = inst.buffer.value.decode()
# Return instruction length and the disassembled instruction text # Return instruction length and the disassembled instruction text
# For now, assume the length is in byte 166 # For now, assume the length is in byte 166
return inst.xedd[166], inst.buffer.value return inst.xedd[166], result
def TryOpen(file_name): def TryOpen(file_name):
try: try:
...@@ -2926,9 +2930,14 @@ def Is64Bit(f): ...@@ -2926,9 +2930,14 @@ def Is64Bit(f):
header = f.read(7) header = f.read(7)
f.seek(pos) f.seek(pos)
magic = header[0:4] magic = header[0:4]
eclass = ord(header[4]) if sys.version_info[0] == 2:
encoding = ord(header[5]) eclass = ord(header[4])
version = ord(header[6]) encoding = ord(header[5])
version = ord(header[6])
else:
eclass = header[4]
encoding = header[5]
version = header[6]
if magic == chr(127) + "ELF" and eclass > 0 and eclass < 3 and encoding > 0 and encoding < 3 and version == 1: if magic == chr(127) + "ELF" and eclass > 0 and eclass < 3 and encoding > 0 and encoding < 3 and version == 1:
result = True if eclass == 2 else False result = True if eclass == 2 else False
return result return result
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册