<p>did you know that GDB includes a bytecode compiler? specifically, it has a private bytecode format used between it and the GDB server, which the latter uses to implement conditional breakpoints with complex expressions and tracepoints</p><p>every time it hits a breakpoint/tracepoint it evaluates the bytecode, which has jumps and can read arbitrary target memory, and decides whether it really was hit or not</p>