在导出DLL的非启动项目中使用Nsight调试CUDA代码
Posted
技术标签:
【中文标题】在导出DLL的非启动项目中使用Nsight调试CUDA代码【英文标题】:Using Nsight to debug CUDA codes in non-startup project which exports DLL 【发布时间】:2013-11-29 15:46:40 【问题描述】:我是否有机会调试在解决方案中输出 DLL 文件的 非启动 项目?我正在使用 CUDA 5.0、GeForce GTX 670、VS2010、Nsight 3.0.013150、本地主机。
目前,我在单击“开始 CUDA 调试”后立即收到断开连接消息
顺便说一句,CUDA 代码是从另一个 DLL 文件导入到此项目的。
请帮忙!!谢谢!!!!!!
【问题讨论】:
你可以试试attach to a running CUDA process @RobertCrovella 感谢您的建议。我按照说明进行了操作,不幸的是,它不起作用,我的愿望过程是灰色的,并且 CUDA 也没有显示在 Type 列中。有什么想法吗? 也许你没有正确设置一些调试环境变量,如here所示 @RobertCrovella,谢谢,我已将环境变量设置为 1,它不起作用 【参考方案1】:您还可以将“启动外部程序”设置为加载 DLL 的 EXE。这可以从 Nsight 用户属性中完成。看看Launching the CUDA Debugger章节
谢谢
【讨论】:
感谢您的回复。这是我的问题:我的解决方案(.sln)有两个项目,项目A是启动项目(.exe),项目B是一个项目导出dll然后由A调用,我的CUDA代码在另一个DLL中,由项目B调用。似乎“启动外部程序”只接受EXE,这意味着我不能将它启动到项目B?这也是一个DLL,对吧?以上是关于在导出DLL的非启动项目中使用Nsight调试CUDA代码的主要内容,如果未能解决你的问题,请参考以下文章
多个.cu、.h和.c文件之间的Nsight CUDA链接问题