我正在使用Visual Studio 2008調試我正在處理的一些CUDA代碼(NSight v3)。在Visual Studio 2008中繼續N次
我注意到了VS2008調試器的一些不錯的功能,例如只能使用「hitcount」功能每N次或N次後中斷。我也注意到能夠運行宏或打印出消息而不是中斷。但是,這些功能似乎都不能與NSight調試器一起使用(並且在NSid v1.5的NVidia網站上也注意到了這些功能)。
使用GDB,我可以簡單地鍵入「繼續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依靠底層調試器來實現命中計數或打印消息(而不僅僅是在頂層實現),所以我不會立即看到如何實現這一點。