#!/usr/bin/env python3

import os

import lkmc.import_path

import common
from shell_helpers import LF

class Main(common.LkmcCliFunction):
    def __init__(self):
        super().__init__(
            defaults = {
                'show_time': False,
            },
            description='''\
Disassemble one function of the given executable.
https://cirosantilli.com/linux-kernel-module-cheat#run-toolchain
''',
        )
        self.add_argument('function', default='main', help='Which function to disassemble.')

    def timed_main(self):
        lkmc.import_path.import_path_main('run-toolchain')(
            tool='gdb',
            extra_args=[
                '-nh',
                '-batch',
                '-ex',
                'disas/rs {}'.format(self.env['function']),
                self.env['image_elf'],
            ],
            quiet=True,
            **self.get_common_args()
        )

if __name__ == '__main__':
    Main().cli()
