首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda-memcheck输出中函数名的跟踪

cuda-memcheck输出中函数名的跟踪
EN

Stack Overflow用户
提问于 2015-06-29 17:43:02
回答 2查看 2.3K关注 0票数 6

我正在运行cuda-memcheck来调试代码,输出如下所示

代码语言:javascript
复制
========= Program hit cudaErrorCudartUnloading (error 29) due to "driver shutting down" on CUDA API call to cudaFree. 
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 [0x2e40d3]
=========     Host Frame:./nmt [0x53526]
=========     Host Frame:./nmt [0xfbd9]
terminate called after throwing an instance of '=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 [0x3c259]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 [0x3c2a5]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xfc) [0x21ecc]
thrust::system::system_error'
=========     Host Frame:./nmt [0x530a]
=========
  what():  driver shutting down
========= Error: process didn't terminate successfully
========= Internal error (20)
========= No CUDA-MEMCHECK results found

从代码中的Host Frame:./nmt [0x53526]行可以判断出哪里被破坏了吗?如果是的话,我怎样才能做到呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-03 01:15:03

正如@talonmies所指出的(我怀疑他不会介意我发布CW答案),cuda-memcheck工具提供了额外的堆栈回溯功能,可以在命令行中添加--show-backtrace开关来启用该功能。

反向跟踪可以包括主机和设备功能(即主机和设备回跟踪)。

如果应用程序还使用主机调试符号信息(例如,linux上的-g )进行编译,那么cuda-memcheck可以在主机回溯跟踪中显示主机函数的函数名。

其他使用信息可在文档中获得。

票数 3
EN

Stack Overflow用户

发布于 2021-10-14 18:46:46

对于我来说,cuda-memcheck具有不同的子工具,比如memcheckracecheckinitchecksynccheck,它们常常在没有行号的情况下甚至没有提到的主机函数的情况下产生主机回溯。在互联网上搜索只显示了这个问题,但我已经将-g甚至-g3传递给宿主编译器,而在默认情况下,文档中将--show-backtrace标志传递给cuda-memcheckyes (显式传递它没有帮助)。因此,我对反向跟踪做了如下操作:

假设您的编译程序名为a.out,并且在主机回溯跟踪中得到一条类似于Host Frame:./nmt [0x530a]的行。然后在cuda-gdb中使用以下内容打开程序:

代码语言:javascript
复制
cuda-gdb a.out

然后,让程序加载所有共享库(至少在main()函数中达到一个点)。在cuda-gdb提示符中输入以下内容:

代码语言:javascript
复制
b main
r

然后,使用以下方法查找函数名:

代码语言:javascript
复制
info symbol 0x530a

或使用以下内容查找行号:

代码语言:javascript
复制
info line *0x530a

其中0x530a是为您打印的地址cuda-memcheck。我想NVIDIA可以很容易地自动实现这一点(以及要求打印它们的主机函数名)。

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

https://stackoverflow.com/questions/31122170

复制
相关文章

相似问题

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