feat: написал парсинг параметров для дебаггера

This commit is contained in:
ElectronixTM
2025-03-31 12:33:54 +03:00
parent e56ff2d847
commit fe8276e9da

View File

@ -1,11 +1,29 @@
from dpdebugger import Debugger, DbgDict """
Это очень грязное решение, но из-за страданий с пакетированием всех скриптов
оказалось тупо проще засунуть дебаггер сразу в эту папку и не мучить себя
"""
from typing import cast
from dpdebugger import Debugger, DbgDict, DbgInstrDesc
from argparse import ArgumentParser from argparse import ArgumentParser
import json import json
import dbg_tui
def parse_dbg(dbg_json_dict: dict) -> DbgDict: def parse_dbg(dbg_json_dict: dict) -> DbgDict:
instr = dbg_json_dict["instructions"] """
print(instr) При сериализации json всегда переводит ключи в формат строк и с этим
ничего поделать нельзя. Но для работы отладчика мне нужно, чтобы
ключами были числа, поэтому эта функция пытается привести к int
все ключи, лежащие в "instructions"
"""
instrs: dict[str | str, DbgInstrDesc] = dbg_json_dict["instructions"]
result: dict[int, DbgInstrDesc] = {
int(k) : instrs[k] for k in instrs
}
dbg_copy = dbg_json_dict.copy()
dbg_copy["instructions"] = result
dbg_copy = cast(DbgDict, dbg_copy)
return dbg_copy
if __name__ == "__main__": if __name__ == "__main__":
parser = ArgumentParser( parser = ArgumentParser(
@ -31,3 +49,9 @@ if __name__ == "__main__":
mem = bytearray(f.read()) mem = bytearray(f.read())
with open(args.debug_file, 'r') as f: with open(args.debug_file, 'r') as f:
dbg_dict: DbgDict = parse_dbg(json.load(f)) dbg_dict: DbgDict = parse_dbg(json.load(f))
dbg = Debugger(mem, dbg_dict)
with open (dbg_dict["src"], 'r') as f:
src = f.read()
dbg_tui.main(dbg, src)