mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Added bidirectionality to get_symbol.
This commit is contained in:
+31
-14
@@ -12,31 +12,48 @@ def main():
|
||||
if len(sys.argv) != 2:
|
||||
show_help()
|
||||
return
|
||||
print_symbol(int(sys.argv[1], 16))
|
||||
symbol, address = find_pairing(sys.argv[1])
|
||||
if symbol is None or address is None:
|
||||
if is_address(sys.argv[1]):
|
||||
print('No symbol was found for the address 0x%08X' % int(sys.argv[1], 16))
|
||||
else:
|
||||
print('No address was found for the symbol "%s"' % sys.argv[1])
|
||||
else:
|
||||
print('0x%08X = %s' % (address, symbol))
|
||||
|
||||
def print_symbol(ramAddress):
|
||||
def find_pairing(sym_or_addr):
|
||||
symbol = None
|
||||
address = None
|
||||
if is_address(sym_or_addr):
|
||||
address = int(sym_or_addr, 16)
|
||||
else:
|
||||
symbol = sym_or_addr
|
||||
try:
|
||||
lines = FileUtil.get_text_from_file(SYMBOLS_TEXT_FILENAME).split('\n')
|
||||
except:
|
||||
print('Couldn\'t open file ' + SYMBOLS_TEXT_FILENAME)
|
||||
return
|
||||
foundSymbol = False
|
||||
for line in lines:
|
||||
matches = re.match(symbol_define_regex, line)
|
||||
if matches is None:
|
||||
continue
|
||||
address = int(matches[1], 16)
|
||||
if address == ramAddress:
|
||||
symbol = matches[2]
|
||||
print('0x%08X = %s' % (address, symbol))
|
||||
foundSymbol = True
|
||||
break
|
||||
if not foundSymbol:
|
||||
print('No symbol was found for the address "' + hex(ramAddress) + '"')
|
||||
|
||||
|
||||
cur_addr = int(matches[1], 16)
|
||||
cur_sym = matches[2]
|
||||
if cur_addr == address:
|
||||
return cur_sym, address
|
||||
elif cur_sym == symbol:
|
||||
return symbol, cur_addr
|
||||
return None, None
|
||||
|
||||
def is_address(symbol):
|
||||
try:
|
||||
int(symbol, 16)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
def show_help():
|
||||
print("Usage: ./get_symbol <RAM Address>")
|
||||
print("Usage: ./get_symbol <RAM Address or symbol>")
|
||||
|
||||
##################################################################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user