首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux上的nsight不能与cuda-gdb一起工作

linux上的nsight不能与cuda-gdb一起工作
EN

Stack Overflow用户
提问于 2012-10-21 09:54:34
回答 1查看 1.6K关注 0票数 0

我在我的Ubuntu 12.10 64位上安装了Cuda5。我有一台GTX 675M,所以我用大黄蜂在我的cuda设备上运行应用程序。我正在通过大黄蜂运行nsight (optirun):

代码语言:javascript
复制
frederico@zeus:~$ optirun /usr/local/cuda/libnsight/nsight

它工作得很好,我可以编译和执行应用程序。问题是,当我尝试在nsight中使用cuda-gdb时,当单击调试按钮时,我得到了以下错误:

代码语言:javascript
复制
No source available for "main() at 0x403c6f" 

但是如果我尝试在控制台上使用cuda-gdb,它可以工作:

代码语言:javascript
复制
frederico@zeus:~/Dropbox/coisas/projetos/delta_cuda$ optirun cuda-gdb bin/linux/release/gpu_md5 
NVIDIA (R) CUDA Debugger
5.0 release
Portions Copyright (C) 2007-2012 NVIDIA Corporation
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/frederico/Dropbox/coisas/projetos/delta_cuda/bin/linux/release/gpu_md5...done.
(cuda-gdb) run
Starting program: /home/frederico/Dropbox/coisas/projetos/delta_cuda/bin/linux/release/gpu_md5 
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff1dfe700 (LWP 10437)]
[New Thread 0x7ffff07f7700 (LWP 10438)]
[New Thread 0x7fffb07f6700 (LWP 10439)]
[New Thread 0x7fff6bfff700 (LWP 10440)]
[New Thread 0x7fff23fff700 (LWP 10441)]
[New Thread 0x7ffedbfff700 (LWP 10442)]
[New Thread 0x7ffe93fff700 (LWP 10443)]
[New Thread 0x7ffe4bfff700 (LWP 10444)]
[New Thread 0x7ffe03fff700 (LWP 10445)]
[Thread 0x7ffe03fff700 (LWP 10445) exited]
[Thread 0x7fffb07f6700 (LWP 10439) exited]
[Thread 0x7ffe4bfff700 (LWP 10444) exited]
[Thread 0x7fff23fff700 (LWP 10441) exited]
[Thread 0x7ffe93fff700 (LWP 10443) exited]
[Thread 0x7ffedbfff700 (LWP 10442) exited]
[Thread 0x7ffff07f7700 (LWP 10438) exited]
[Thread 0x7fff6bfff700 (LWP 10440) exited]
[Thread 0x7ffff1dfe700 (LWP 10437) exited]

Program exited with code 030.
(cuda-gdb) 

你知道会发生什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-23 01:18:07

当您的应用程序挂起时,将打印该消息。这意味着您的应用程序没有使用调试信息进行编译-在这种情况下,调试器无法将您的指令映射到源代码行。

要在命令行cuda-gdb中重现此消息,您需要在断点处暂停,例如,在执行"run“之前执行"break main”。

更新-适用于将来中遇到类似问题的用户

应用程序的构建方式如下:

  1. CUDA内核代码是使用NVCC编译的,其中包含了调试信息。例如,NVCC调用是:nvcc -g -G -c mykernel.cu -o mykernel.o
  2. This目标文件与其他由GCC编译的目标文件链接,而不生成调试信息- g++ mycpp1.cpp mycpp2.cpp mykernel.cu -o mycudaapplication。这导致某些部分调试信息不足以让cuda-gdb正确解析路径。

在调试CUDA应用程序时,Nsight Eclipse Edition默认依靠cuda-gdb源路径解析来查找要在编辑器中打开的文件。

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

https://stackoverflow.com/questions/12994269

复制
相关文章

相似问题

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