请教一下:Nsight3.1+CUDA5.5+VS2012中设置断点不停留的问题。
环境如下:
CUDA Toolkit :5.5.
Nsight:3.1.
VS:2012.
SYSTEM:WIN8.
GPU:GTX560TI.
驱动版本:326.41 beta.
具体问题如下:
程序没有问题,在Nsight中选择Start CUDA Debugging后,Nsigth显示连接成功,程序也运行在调试模式,但是设置的断点无效,也就是不中断。图片如下:[attach]3358[/attach][attach]3358[/attach]
望版主查查问题。
LZ您好:
图中信息已经表明了您的问题所在:nsight的start CUDA debugging只适用于CUDA device code,也就是kernel函数和__device__函数,如果您需要调试host端代码,请直接使用VS的debugging功能,也就是直接F5即可。
祝您好运~
刚刚测试了下CUDA5.5带的VertorAdd,发现可以调试,断点也可用。
楼主请您确定:
(1)您使用了-G编译您的kernel
(2)您试图在kernel中下断点。
如果2点均满足,却无法命中,那么我也不知道为什么。
论坛除了您之外只有1人遇到这种情况,他的反馈是:“反复重启计算机就好了”。
我和其他会员等使用了多年nsight, 从未遇到这种情况。请您考虑1和2.
谢谢版主,但是我调试的代码确实是前缀了__global__ void 的CUDA代码。断点也在CUDA代码之内,
为什么出现这种情况我也不知道。
谢谢,我再去试验一下。
LZ您好:
这样的话,我也不清楚是什么问题了,请您参照4#横扫斑竹的建议,检查一下。
祝您好运~
笑死了……版主好萌……反复重启~
那个,我这种回帖可以发吗?好像太水了点……
前段时间有楼主发帖,说他是同样状况,
并对我们保证了设置了-G,断点,以及肯定kernel可以执行到断点位置,
但是不命中。
然后他说我们的建议都无效,自己反复重启2-3次可以下一个断点。
言辞确确的,就在论坛上。
所以我将此点作为一个可能的解决方案给予提供。
感谢来访。tony。
我最近也在用 Nsight ,不过是 Linux 环境下的,早晨看这个帖子的时候也是断点设置了不能停。
不过现在已经解决了。嗯,我觉得下面的经验可以参考下:
1、 Nsight 的 build 可以用自己编写的 makefile。注意最后输出的文件名需要是“All”,否则会报错。
2、 Nsight 的 debug 功能使用前请注意将自己写的 makefile 中的编译选项加上 –G ,原优化选项改为 –O0,不能是 –O2 之类的。
3、 Nsight 的断点可以在 debug 时动态添加,不必要在 debug 前就完成添加。
[
感谢您分享您的经验,以回馈论坛!
祝您编码顺利~