首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法调试AMP代码

无法调试AMP代码
EN

Stack Overflow用户
提问于 2017-01-09 08:31:03
回答 3查看 623关注 0票数 0

我无法调试我的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,但我当然认为问题在于它没有调试功能。

怎么回事?

EN

回答 3

Stack Overflow用户

发布于 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之前,我想要确定...

票数 1
EN

Stack Overflow用户

发布于 2018-03-07 16:17:19

这方面的另一个提示:在尝试调试时,我看到一条调试输出消息,显示为"Please use the /DEBUG:FULL linker switch to hit breakpoints in C++ AMP code."

更改链接器设置后,调试对我起作用了。

票数 1
EN

Stack Overflow用户

发布于 2017-02-08 22:06:38

您的lambda函数是c++/amp限制函数吗?

应该是这样的,否则GPU调试没有权限进入c++受限代码段。

也许这就是为什么你会得到:

“不会命中断点...”

有关更多信息,请阅读:

https://msdn.microsoft.com/en-us/library/hh873133.aspx

当然,一个代码示例会更好。在不同的机器上进行试验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41539453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档