Debugging Features in Numba 0.55¶
Numba 0.55 enables following features:
Added info args
¶
See info args.
In previous versions info args
always returns No arguments.
.
Extended info locals
¶
See info locals.
Breakpoint with condition by function argument¶
Test numba_dpex/tests/debugging/test_breakpoints.py:test_breakpoint_with_condition_by_function_argument
.
When set breakpoint on the function or the first line of the function
than info locals
and info args
provide correct values.
It makes it posible to use breakpoint with condition by function argument.
Example¶
Source code numba_dpex/examples/debug/side-by-side.py
:
14def common_loop_body(param_a, param_b):
15 param_c = param_a + numba.float32(10) # Set breakpoint here
16 param_d = param_b * numba.float32(0.5)
17 result = param_c + param_d
18 return result
Set breakpoint with condition by function argument:
$ NUMBA_OPT=0 gdb-oneapi -q python
...
(gdb) break side-by-side.py:25 if param_a == 3
...
(gdb) run numba_dpex/examples/debug/side-by-side.py --api=numba-dpex-kernel
...
Thread 2.1 hit Breakpoint 1, with SIMD lane 3, __main__::common_loop_body (param_a=3, param_b=3) at side-by-side.py:25
25 param_c = param_a + 10 # Set breakpoint here
(gdb) print param_a
$1 = 3
Added NUMBA_EXTEND_VARIABLE_LIFETIMES
¶
See Local Variables Lifetime in Numba IR.
:samp:NUMBA_EXTEND_VARIABLE_LIFETIMES=1
works together with
:samp:NUMBA_DUMP_ANNOTATION=1
.
Displaying Complex Data Types¶
Numba 0.55 improves displaying of complex data types like arrays.
It makes it possible to access data
in arrays.
It is possible to get array values by commands like :samp:x/10f array.data
and
:samp:print array.data[5]
.