diff --git a/gdb_testing/native_gdb.py b/gdb_testing/native_gdb.py index 147fa28ab41f5d2a406dcd5f6f6e4640c1be7096..1a865b4064d7e61a2e55c982f66c93a794f8c062 100644 --- a/gdb_testing/native_gdb.py +++ b/gdb_testing/native_gdb.py @@ -10,6 +10,11 @@ def run(what, run="run"): return gdb.save_value("us_busy_once", "%1.f", "us") +def version(): + gdb.set_title("version") + print(gdb.execute('pi print(sys.version)')[1]) + print(gdb.execute('show version')[1].split("\n")[0]) + def nominal_time(): run("Nominal time") @@ -71,14 +76,19 @@ def do_nothing(): def set_breakpoints(nb_bp=1000): assert not (ref_time_set_bp is None and nb_bp != 0) - gdb.execute("py import sys; sys.path.append('/home/kevin/travail/Python')") - gdb.execute("py import mcgdb") + try: + import mcgdb.testing + except ImportError: + print("Cannot test breakpoint setting without mcgdb at the moment.") + return + + mcgdb.testing.gdb__init_mcgdb(gdb) gdb.execute("""python class VoidBP(gdb.Breakpoint): def __init__(self, addr): gdb.Breakpoint.__init__(self, "*{{}}".format(addr), internal=True) - #self.silent=True + self.silent=True class TestBP(mcgdb.capture.FunctionBreakpoint): def __init__(self): @@ -127,14 +137,14 @@ def benchmark(_gdb, what=None, at_init=None): global gdb gdb = _gdb - # what = [do_nothing, set_breakpoints] + what = [version, do_nothing, set_breakpoints] if what is None: - what = [do_nothing, set_breakpoints, nominal_time, gdb_breakpoint, gdb_watchpoint] + \ + what = [version, do_nothing, set_breakpoints, nominal_time, gdb_breakpoint, gdb_watchpoint] + \ list(map(lambda x: gdb_py_breakpoint_parameter(x), (0b0, 0b1, 0b10, 0b11))) gdb.start(CSource("../mcgdb_testing/benchmark.c"), at_init) for prepare_and_run in what: prepare_and_run() - gdb.reset(hard=(not at_init)) + gdb.reset(hard=(at_init is not None)) gdb.quit()