Commit 606bd60a authored by Adrian Hunter's avatar Adrian Hunter Committed by 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: default avatarAdrian 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 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%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment