如何防止 cuda-gdb 优化掉任何值(无论是设备还是主机,本地还是全局)?我查看了 nvidia 论坛,但其中大部分都已有多年历史,似乎没有针对旧 cuda 版本的解决方案,但是否有针对最新版本(cuda 9.2 和 sm 61)的解决方案?
我正在使用标志 described in nvidia's documentation :
-g
- “为主机代码生成调试信息。”
-G
- “为设备代码生成调试信息。关闭所有优化。不要用于分析;改用 -lineinfo。”
最佳答案
how do I prevent cuda-gdb from optimizing out any value
cuda-gdb
没有优化任何东西;它只是解释编译器 (nvcc
) 放入二进制文件中的调试信息。
如果编译器选择不描述某个变量的位置,那么 cuda-gdb
无法恢复该信息。这通常是 nvcc
的调试信息质量问题。
nvcc
did 可能描述了您之后的位置,但 cuda-gdb
无法处理该描述,在这种情况下这是 cuda-gdb
中的错误。
无论是哪种情况,除了向 NVidia 投诉之外,您都无能为力。
关于c++ - 如何防止 cuda-gdb 中的 <optimized out> 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52826405/