Using GDB, it is straightforward to debug and monitor a target program by setting a break-point at a specific instruction, since the instruction addresses are known.
However, we have two concepts, static instruction, and dynamic instruction. It is possible to have a program with ten static instructions, that execute several times, ten million dynamic instructions, for the same program.
Is it possible to set a break-point at a specific dynamic instruction? For example, in some computer architecture simulators, it is possible to rise a trap at a specific clock cycle, or certain tick, like in Gem5.