summaryrefslogtreecommitdiff
path: root/tools/dump_function.py
blob: f95f3b7ac0a916c61aa40ffc6e83aec06ff9e490 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env python3

import argparse

import util.elf
from util import utils


def dump_fn(name: str) -> None:
    expected_dir = utils.get_repo_root() / "expected"
    try:
        fn = util.elf.get_fn_from_my_elf(name)
        path = expected_dir / f"{name}.bin"
        path.parent.mkdir(exist_ok=True)
        path.write_bytes(fn.data)
    except KeyError:
        utils.fail("could not find function")


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument("function_name", help="Name of the function to dump")
    args = parser.parse_args()

    dump_fn(args.function_name)


if __name__ == "__main__":
    main()