From dc165885758cfecf54dc8c5cd4547c14c065570e Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Sun, 23 Oct 2022 18:39:13 -0500 Subject: [PATCH] add, use coproc_manager --- py/coproc_manager.py | 17 +++++++++++++ py/do_coproc.py | 28 ++++++++++++---------- py/minidump.py | 5 ++-- py/minielf.py | 57 +++++++++++++++++++++++++++----------------- ulp.c | 7 +++--- 5 files changed, 74 insertions(+), 40 deletions(-) create mode 100644 py/coproc_manager.py diff --git a/py/coproc_manager.py b/py/coproc_manager.py new file mode 100644 index 0000000..1e59dda --- /dev/null +++ b/py/coproc_manager.py @@ -0,0 +1,17 @@ +import minielf + +class Program: + def __init__(self, filename): + self.elf = minielf.ELFFile(open(filename, "rb")) + code_header = self.elf.get_header_by_type(minielf.PT_LOAD) + self.code = bytes(self.elf.pread(code_header.p_offset, code_header.p_filesz)) + self.symtab = self.elf.get_section_by_name('.symtab') + + def get_code(self): + return + + def get_symbol(self, name): + r = self.symtab.get_first_symbol_by_name(name) + if r is None: + raise ValueError(f"{repr(name)} not found") + return r diff --git a/py/do_coproc.py b/py/do_coproc.py index e29091e..feb4eb0 100644 --- a/py/do_coproc.py +++ b/py/do_coproc.py @@ -1,26 +1,28 @@ import time import struct from coproc import * -from minidump import e, h, en +from coproc_manager import Program -def storele32(cm, off, x): - print(off, ":=", x) - cm[off:off+4] = struct.pack("