Altering Execution#

See GDB* documentation.

Assignment to Variables#

To alter the value of a variable, evaluate an assignment expression. This also works for function arguments.

Note

Altering arguments has limitation. For it to work correctly arguments should not be modified in code. See Numba issue.

Example#

Source code numba_dpex/examples/debug/side-by-side-2.py:

14def common_loop_body(i, a, b):
15    param_a = a[i]
16    param_b = b[i]
17    param_c = param_a + 10  # Set breakpoint here
18    param_d = param_b * 0.5
19    result = param_c + param_d
20    return result

Debug session:

$ gdb-oneapi -q python
...
(gdb) set environment NUMBA_OPT 0
(gdb) set environment NUMBA_EXTEND_VARIABLE_LIFETIMES 1
(gdb) break side-by-side-2.py:29 if param_a == 5
...
(gdb) run numba_dpex/examples/debug/side-by-side-2.py --api=numba-dpex-kernel
...
Thread 2.1 hit Breakpoint 1, with SIMD lane 5, __main__::common_loop_body (i=5, a=..., b=...) at side-by-side-2.py:29
29          result = param_c + param_d
(gdb) print param_c
$1 = 15
(gdb) print param_c=200
$2 = 200
(gdb) print param_c
$3 = 200