Time notationΒΆ

Undo Engine uses a special BB:PC notation of execution time. It is a pair of two integer values.

  • BB - a number of a basic block of execution. Also known as bbcount.
  • PC - a value of Program Counter (also known as Instruction Pointer) register.

BB, or bbcount, is a coarse-grained measure of how far something is through execution history. It starts with the initial value of 1 and monotonically increases as execution progresses. For a given recording of a given program, same particular bbcount always means the same location in history.

PC value is whatever the PC register value is at any given moment of execution. PC value changes as CPU instructions are executed. Within a basic block, PC value monotonically grows.

The beneficial properties of this time notation system are:

  • precision and unambiguity: each executed instruction has one and only one time value, which is unique in the history;
  • performance: no clock resource is queried to determine the time value;
  • convenience: time values are directly comparable as tuples.

Note

In UndoDB prompt, you can always query the current execution time with the command uinfo time. To get full BB:PC value instead of just BB, use -a flag: uinfo time -a.