Merge "Script: Fix disassemble_tombstone.py"

This commit is contained in:
Treehugger Robot
2018-06-14 15:26:23 +00:00
committed by Gerrit Code Review

View File

@@ -55,7 +55,7 @@ def Disassemble(line_generator):
# #
# It's easiest to nest register processing in the codeblock search loop. # It's easiest to nest register processing in the codeblock search loop.
register_list_re = re.compile('^pid: ') register_list_re = re.compile('^pid: ')
codeblock_re = re.compile('^code around ([a-z0-9]+)') codeblock_re = re.compile('^code around ([a-z0-9]+)|memory near (pc)')
register_text = {} register_text = {}
for line in line_generator: for line in line_generator:
yield line yield line
@@ -65,8 +65,9 @@ def Disassemble(line_generator):
yield output yield output
code_match = codeblock_re.search(line) code_match = codeblock_re.search(line)
if code_match: if code_match:
code_reg = ''.join(code_match.groups(''))
for output in ProcessCodeBlock( for output in ProcessCodeBlock(
abi, tools, code_match.group(1), register_text, line_generator): abi, tools, code_reg, register_text, line_generator):
yield output yield output
@@ -138,6 +139,12 @@ def ProcessCodeBlock(abi, tools, register_name, register_text, line_generator):
subprocess.check_call(tools.Assemble([ subprocess.check_call(tools.Assemble([
'-o', object_file.name, scratch_file.name])) '-o', object_file.name, scratch_file.name]))
scratch_file.close() scratch_file.close()
# Work around ARM data tagging: rename $d to $t.
if abi.startswith('arm'):
subprocess.check_call(
['sed', '-i', '-e', "s/\\x00\\x24\\x64\\x00/\\x00\\x24\\x71\\x00/", object_file.name])
linked_file = tempfile.NamedTemporaryFile(suffix='.o') linked_file = tempfile.NamedTemporaryFile(suffix='.o')
cmd = tools.Link([ cmd = tools.Link([
'-Ttext', '0x' + start_address, '-o', linked_file.name, object_file.name]) '-Ttext', '0x' + start_address, '-o', linked_file.name, object_file.name])