Merge "Script: Fix disassemble_tombstone.py"
This commit is contained in:
@@ -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])
|
||||||
|
|||||||
Reference in New Issue
Block a user