I’m trying to debug a program which uses CUDA 11.5 and Optix 7.4 on a Fedora 35 Linux system with a RTX3060 card.
The program crashes and when I run it in cuda-gdb the error is
CUDA Exception: Warp Illegal Address
The exception was triggered at PC 0x7fffce30dd70
Thread 4 "GPUThread" received signal CUDA_EXCEPTION_14, Warp Illegal Address.
[Switching focus to CUDA kernel 0, grid 90, block (2714,0,0), thread (0,0,0), device 0, sm 0, warp 1, lane 0]
0x00007fffce30e0e0 in ??<<<(7680,9,1),(128,1,1)>>> ()
I tried disassembling the GPU code, and got the following output where disassembly does not work
(cuda-gdb) x/4i $pc-32
0x7fffce30e0c0:
0x7fffce30e0c1:
0x7fffce30e0c2:
0x7fffce30e0c3:
(cuda-gdb) p $pc
$1 = (void (*)()) 0x7fffce30e0e0
(cuda-gdb) x/4x $pc-32
0x7fffce30e0c0: 0xff4b7224 0x000000ff 0x078e0035 0x000fe200
(cuda-gdb) where
#0 0x00007fffce30e0e0 in ??<<<(7680,9,1),(128,1,1)>>> ()
How do I get the debugger to show me a disassembly of memory at the instruction counter?
~~