I used cuda-memcheck to debug a seemingly memory corruption issue in a C++ and OpenACC code. The output is representative of a memory access error:
Invalid global read of size 8
========= at 0x00000060 in filename+line number
========= by thread (0,0,0) in block (0,0,0)
========= Address 0x070c40b0 is out of bounds
According to the manual (https://docs.nvidia.com/cuda/cuda-memcheck/index.html), the address 0x070c40b0 should be a device address. So my first question is: is there a way to interpre/map back the address to the variable in the code?
I tried to use acc_present_dump to check whether the various variables had been allocated device memory. However, not all the variables have their names properly detected. For example:
host:0x5e6f8a0 device:0x7fa4c6a00200 size:4 presentcount:0+1 line:-1 name:iCondTableClip_
host:0x6af63e0 device:0x7fa4ab201400 size:160 presentcount:0+1 line:221 name:_T75523488_48240
host:0x6ce0200 device:0x7fa4ab200200 size:40 presentcount:0+1 line:-1 name:(null)
Here the 1st line is fine. The 2nd line is not meaningful and the 3rd line is simply null. My second question is: is there a way to retain the name information?