From 5962a73341504bc94e1870e43a41311925c70e20 Mon Sep 17 00:00:00 2001 From: ElectronixTM Date: Mon, 31 Mar 2025 11:36:05 +0300 Subject: [PATCH] =?UTF-8?q?mess:=20=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20=D0=BD=D0=B0=D0=B7=D0=B0=D0=B4,=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=BC=D1=83=20=D1=87=D1=82=D0=BE=20=D1=8D?= =?UTF-8?q?=D1=82=D0=BE=20=D0=BF=D1=80=D0=B8=D0=B2=D0=B5=D0=BB=D0=BE=20?= =?UTF-8?q?=D0=BA=20=D1=85=D0=B0=D0=BE=D1=81=D1=83=20=D1=81=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8F=D0=BC?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Теперь репозиторий очень грязный, но мне правда уже не хочется мучиться с зависимостиями, поэтому пусть будет так --- src/README.md | 3 ++ src/{debugger => }/__init__.py | 0 src/dbg_main.py | 33 +++++++++++++++++++++ src/debugger/main.py | 5 ---- src/{debugger/debugger.py => dpdebugger.py} | 2 ++ src/emulator/__init__.py | 0 src/{emulator => }/main.py | 0 src/{emulator => }/optable.py | 0 src/{emulator => }/vm.py | 0 9 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 src/README.md rename src/{debugger => }/__init__.py (100%) create mode 100644 src/dbg_main.py delete mode 100644 src/debugger/main.py rename src/{debugger/debugger.py => dpdebugger.py} (99%) delete mode 100644 src/emulator/__init__.py rename src/{emulator => }/main.py (100%) rename src/{emulator => }/optable.py (100%) rename src/{emulator => }/vm.py (100%) diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..27f069e --- /dev/null +++ b/src/README.md @@ -0,0 +1,3 @@ +# почему так грязно? + +Потому что я заколебался воевать с модульностью питона, чтобы сделать это красиво diff --git a/src/debugger/__init__.py b/src/__init__.py similarity index 100% rename from src/debugger/__init__.py rename to src/__init__.py diff --git a/src/dbg_main.py b/src/dbg_main.py new file mode 100644 index 0000000..0fa300c --- /dev/null +++ b/src/dbg_main.py @@ -0,0 +1,33 @@ +from dpdebugger import Debugger, DbgDict +from argparse import ArgumentParser +import json + +def parse_dbg(dbg_json_dict: dict) -> DbgDict: + instr = dbg_json_dict["instructions"] + print(instr) + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="dp32dbg", + description="Bad debugger for DP32 processor" + ) + parser.add_argument( + "-m", + "--memory", + required=True, + help="Initial memory for virtual machine" + ) + parser.add_argument( + "-d", + "--debug-file", + required=True, + help="JSON with debug information. by default named dbg.json" + ) + + args = parser.parse_args() + + with open(args.memory, "rb") as f: + mem = bytearray(f.read()) + with open(args.debug_file, 'r') as f: + dbg_dict: DbgDict = parse_dbg(json.load(f)) diff --git a/src/debugger/main.py b/src/debugger/main.py deleted file mode 100644 index 1358978..0000000 --- a/src/debugger/main.py +++ /dev/null @@ -1,5 +0,0 @@ -def main(): - print("Hello world!") - -if __name__ == "__main__": - main() diff --git a/src/debugger/debugger.py b/src/dpdebugger.py similarity index 99% rename from src/debugger/debugger.py rename to src/dpdebugger.py index 188e14c..4c2a958 100644 --- a/src/debugger/debugger.py +++ b/src/dpdebugger.py @@ -2,6 +2,7 @@ Отладчик принимает на вход довольно много всего и пытается вам хоть как-то помочь """ + from emulator.vm import VM, VMException, Breakpoint, Condition, WORD_SIZE from dataclasses import dataclass @@ -59,6 +60,7 @@ class Debugger: self._vm = VM(mem) self._dbg_dict = dbg_dict self._breakpoints = set() + self.__init_callbacks__() def __init_callbacks__(self): self._callbacks_table = { diff --git a/src/emulator/__init__.py b/src/emulator/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/emulator/main.py b/src/main.py similarity index 100% rename from src/emulator/main.py rename to src/main.py diff --git a/src/emulator/optable.py b/src/optable.py similarity index 100% rename from src/emulator/optable.py rename to src/optable.py diff --git a/src/emulator/vm.py b/src/vm.py similarity index 100% rename from src/emulator/vm.py rename to src/vm.py