【发布时间】:2013-05-31 07:20:05
【问题描述】:
我正在使用 Visual Studio 2008 调试我正在处理的一些 CUDA 代码 (NSight v3)。
我注意到 VS2008 调试器的几个不错的功能,例如使用“hitcount”功能仅每 N 次或 N 次后中断的能力。我还注意到运行宏或打印消息而不是中断的能力。但是,这些功能似乎都不适用于 NSight 调试器(NVidia 网站上已对 NSight v1.5 进行了说明)。
使用 GDB,我可以简单地输入“continue 300”来继续 300 次。这对于循环的第 300 次迭代非常有用。如何在 Visual Studio 2008 中执行此操作?请注意,我不想在第 N 次命中某个断点时中断,我想在第 N 次命中任何断点时中断。
还可以解决我的问题的是能够从循环中为任何一个(但只有一个!)CUDA 线程打印出一个特定的变量。由于调试器足够好,不会在线程之间跳转,我可以使用这样的 GDB 脚本来完成此操作:
c
print my_value
c
print my_value
... N - 2 more times
我显然会使用 Python 或 bash 或其他东西来生成。
由于 VS2008 显然依赖于底层调试器来实现命中计数或打印消息(而不是仅仅在顶层实现它),我没有立即看到如何实现这一点。
【问题讨论】:
标签: visual-studio debugging visual-studio-2008 cuda nsight