In the CUDA samples, and my minimal test cases I can step through debug CUDA kernels fine now and correctly see the values of variables in the watch window.
In our main projects (that we cannot legally share right now) with more complicated kernels (and even simple ones in the same project) I cannot view the values of variables properly in the legacy debugger watch window which makes debugging a nightmare when we are trying to track issues down. All we can see is lots of errors in the watch window like:
“_ZN67_INTERNAL_45_tmpxft_00005044_00000000_7_test_cpp1_ii_0ee0ef6d6thrust12placeholders2_3E Could not resolve name”
That one is interesting as it pops up in breaking into a kernel that is not even using thrust! But where a kernel in the same file is using thrust? But basically all attempts to type known variable names into the CUDA warp watch window result in “Could not resolve name ‘XXXX’”
As far as we can tell the projects have exactly the same build settings as simple test projects that work fine regards the watch windows when debugging.
The only difference I can see between our main projects that have this problem and our tests right now is that we use two GPU’s (so CUDA is creating two contexts) in the main projects but just one so far in our tests.
Any ideas about what could be causing this?
Win7 64bit, GTX1080Ti & GTX1080, VS2017 15.8.1 (And earlier), NSight 5.6, Driver 398.82
Relevant CUDA Debug Build settings (Win64 AVX build):
Generate Relocatable Device Code: No
NVCC Compilation Type: Generate hybrid object file (–compile)
CUDA Runtime: Static CUDA runtime library (-cudart static)
Target Machine Platform: (–machine64)
Interleave source in PTX: No
Code Generation: compute_61,sm_61
Generate GPU Debug Information: Yes (-G)
Generate Line Number Information: No
Max Used Register: 0
Verbose PTXAS Output: No
Perform Device Link: Yes (-dlink)