Visual studio 在VisualStudio2008中继续N次

Visual studio 在VisualStudio2008中继续N次,visual-studio,debugging,visual-studio-2008,cuda,nsight,Visual Studio,Debugging,Visual Studio 2008,Cuda,Nsight,我正在使用VisualStudio2008调试我正在处理的一些CUDA代码(NSight v3) 我注意到了VS2008调试器的几个不错的特性,例如,使用“命中计数”特性,每隔N次或在N次之后只中断一次。我还注意到了运行宏或打印消息而不是中断的能力。然而,这些特性都没有与NSight调试器一起工作(并且在英伟达网站上注意到NVIEW V1.5)。 使用GDB,我可以简单地键入“continue 300”继续300次。这对于循环的第300次迭代非常有用。如何在VisualStudio2008中实现

我正在使用VisualStudio2008调试我正在处理的一些CUDA代码(NSight v3)

我注意到了VS2008调试器的几个不错的特性,例如,使用“命中计数”特性,每隔N次或在N次之后只中断一次。我还注意到了运行宏或打印消息而不是中断的能力。然而,这些特性都没有与NSight调试器一起工作(并且在英伟达网站上注意到NVIEW V1.5)。

使用GDB,我可以简单地键入“continue 300”继续300次。这对于循环的第300次迭代非常有用。如何在VisualStudio2008中实现这一点?请注意,我不希望在第n次命中某个断点时中断,我希望在第n次命中任何断点时中断

解决我的问题的另一个方法是能够为任何一个(但只有一个!)CUDA线程从循环中打印出特定变量。由于调试器非常好,不会在线程之间跳转,因此我可以使用如下GDB脚本完成此任务:

c
print my_value
c
print my_value
... N - 2 more times
很明显,我会使用Python或bash之类的工具生成它


由于VS2008显然依赖于底层调试器来实现诸如命中计数或打印消息之类的功能(而不仅仅是在顶层实现),因此我不知道如何立即实现这一点。

事实证明,您可以创建一个宏来实现这一点!这里有一个简单地跳过5次:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module RecordingModule


    Sub ClickContinue()
        DTE.Debugger.Go(True)
        DTE.Debugger.Go(True)
        DTE.Debugger.Go(True)
        DTE.Debugger.Go(True)
        DTE.Debugger.Go(True)
    End Sub
End Module
这个将提示您输入一个数字,然后继续多次

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module RecordingModule


    Sub ClickContinue()
        numToSkip = InputBox("How many times to continue?")
        For i = 0 To CInt(numToSkip)
            DTE.Debugger.Go(True)
        Next

    End Sub
End Module
我通过使用“录制宏”功能和修改结果(稍微修改)获得了这些。比
还要多的工作继续N
,是吗