我无法调试我的AMP代码。
我有: Visual Studio 2015、Windows10家庭版64位、GeForce 660 Ti、DirectX 12
在我的C++项目中,我将“调试器类型”设置为“仅GPU (C++ AMP)”,“调试加速器类型”为“GPU-软件仿真器”。
当我尝试在我的lambda中放置断点时,我得到“断点将不会被命中...”图标。此外,当我的代码获取各种加速器信息时,它们都有‘is_debug=false’--包括'direct3d/ref‘加速器和GeForce 660Ti加速器。
我还专门尝试过将默认加速器设置为direct3d_ref,但我当然认为问题在于它没有调试功能。
怎么回事?
发布于 2017-02-05 05:56:31
我也有同样的情况。我发现了一个提示:https://msdn.microsoft.com/en-us/library/hh265136.aspx
Windows 7、Windows 8、Windows Server 2008 R2和Windows Server 2012支持平台调试。要在软件仿真程序上进行调试,需要Windows 8或Windows Server 2012。要在硬件上进行调试,必须安装图形卡的驱动程序。并非所有硬件供应商都实现所有调试器功能。有关限制,请参阅供应商文档。
由此,我猜测可能是Windows 10不支持AMP调试,或者文档已经过时了。
这是有道理的: AMP是由微软开发的,但Windows10是由微软开发的,所以人们不会期望它们是兼容的。:)
在我回到Windows 8.1之前,我想要确定...
发布于 2018-03-07 16:17:19
这方面的另一个提示:在尝试调试时,我看到一条调试输出消息,显示为"Please use the /DEBUG:FULL linker switch to hit breakpoints in C++ AMP code."
更改链接器设置后,调试对我起作用了。
发布于 2017-02-08 22:06:38
您的lambda函数是c++/amp限制函数吗?
应该是这样的,否则GPU调试没有权限进入c++受限代码段。
也许这就是为什么你会得到:
“不会命中断点...”
有关更多信息,请阅读:
https://msdn.microsoft.com/en-us/library/hh873133.aspx
当然,一个代码示例会更好。在不同的机器上进行试验。
https://stackoverflow.com/questions/41539453
复制相似问题