mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 914253 patch 5 - Implement caching of addr2line results, like bug 812070 did for fix-linux-stack.pl. No review.
This commit is contained in:
parent
78433924c6
commit
d67e757dc8
@ -212,14 +212,20 @@ addr2lines = {}
|
||||
def addressToSymbol(file, address):
|
||||
converter = None
|
||||
address_adjustment = None
|
||||
cache = None
|
||||
if not file in addr2lines:
|
||||
debug_file = separate_debug_file_for(file) or file
|
||||
converter = unbufferedLineConverter('/usr/bin/addr2line', ['-C', '-f', '-e', debug_file])
|
||||
address_adjustment = address_adjustment_for(file)
|
||||
addr2lines[file] = (converter, address_adjustment)
|
||||
cache = {}
|
||||
addr2lines[file] = (converter, address_adjustment, cache)
|
||||
else:
|
||||
(converter, address_adjustment) = addr2lines[file]
|
||||
return converter.convert(hex(int(address, 16) + address_adjustment))
|
||||
(converter, address_adjustment, cache) = addr2lines[file]
|
||||
if address in cache:
|
||||
return cache[address]
|
||||
result = converter.convert(hex(int(address, 16) + address_adjustment))
|
||||
cache[address] = result
|
||||
return result
|
||||
|
||||
line_re = re.compile("^(.*) ?\[([^ ]*) \+(0x[0-9a-f]{1,8})\](.*)$")
|
||||
balance_tree_re = re.compile("^([ \|0-9-]*)")
|
||||
|
Loading…
Reference in New Issue
Block a user