import gdb from collections import Counter gr = gdb.execute pcs = Counter() inf = gdb.selected_inferior() for i in range(300): try: gr("stepi", to_string=True) except Exception as e: print("stepfail %s" % e); break try: pcs[int(gdb.parse_and_eval("$pc"))] += 1 except Exception: break print("HOTPCS") top = pcs.most_common(4) for pc, n in top: print("PC 0x%x hits=%d" % (pc, n)) for pc, n in top[:1]: try: print(gr("x/10i 0x%x" % pc, to_string=True)) print(gr("info registers rax rbx rcx rdx rsi rdi rbp r8 r9 r10 r11 r12 r13 r14 r15", to_string=True)) except Exception as e: print("fail %s" % e) print("T83-DONE")