Hi,
i’m fairly new to cuda-gdb and i have some problems with it.
I’m running this on:
GPU 0: GeForce 210 (S/N: 6195520625)
GPU 1: GeForce 9800 GTX/9800 GTX+ (S/N: 86083934480)
Linux 2.6.36-gentoo-r5 #2 SMP Tue Apr 5 14:48:32 CEST 2011 x86_64 Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz GenuineIntel GNU/Linux
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2010 NVIDIA Corporation
Built on Wed_Nov__3_16:16:57_PDT_2010
Cuda compilation tools, release 3.2, V0.2.1221
NVIDIA (R) CUDA Debugger
3.2 release
Portions Copyright (C) 2008-2010 NVIDIA Corporation
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
I used the “bitreverse.cu Source Code” from NVidia cuda-gdb.pdf file (04 CUDA-GDB WALK-THROUGH).
I compiled it with
nvcc -g -G bitreverse.cu -o bitreverse
Everything looks fine for me. So next step setting the break-points.
running “cuda-gdb bitreverse”
NVIDIA (R) CUDA Debugger
3.2 release
Portions Copyright (C) 2008-2010 NVIDIA Corporation
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(cuda-gdb) b main
Breakpoint 1 at 0x400db0: file bitreverse.cu, line 25.
(cuda-gdb) b bitreverse
Breakpoint 2 at 0x402043: file bitreverse.cu, line 8.
(cuda-gdb) b 21
Breakpoint 3 at 0x40204f: file bitreverse.cu, line 21.
(cuda-gdb) r
Starting program: /home/dm/SVN_zap/src_code/testfield/dbg_test/bitreverse
[Thread debugging using libthread_db enabled]
[New process 1048]
[New Thread 139877859661600 (LWP 1048)]
[Switching to Thread 139877859661600 (LWP 1048)]
Breakpoint 1, main () at bitreverse.cu:25
25 void *d = NULL; int i;
(cuda-gdb) c
Continuing.
Program received signal SIGTRAP, Trace/breakpoint trap.
main () at bitreverse.cu:28
28 for (i = 0; i < N; i++)
(cuda-gdb)
and the last output after the first “c”-command do not looks like in the example.
so i continuous the program but then i got this message:
(cuda-gdb) c
Continuing.
"/tmp/tmp_cudagdb_elf_32129_1038_2113641457.o": can't read symbols: File format not recognized.
(cuda-gdb) c
Continuing.
"/tmp/tmp_cudagdb_elf_32129_1038_1332299341.o": can't read symbols: File format not recognized.
(cuda-gdb) c
Continuing.
"/tmp/tmp_cudagdb_elf_32129_1038_110164382.o": can't read symbols: File format not recognized.
(cuda-gdb) c
Continuing.
"/tmp/tmp_cudagdb_elf_32129_1038_1812087736.o": can't read symbols: File format not recognized.
(cuda-gdb) c
Continuing.
Breakpoint 2, 0x0000000000402043 in bitreverse (__cuda_0=0x0) at bitreverse.cu:8
8 __global__ void bitreverse(void *data) {
(cuda-gdb) s
0x0000000000401fe4 in ullmax (a=0, b=140735272359200) at /opt/cuda/bin/../include/math_functions.h:4986
4986 }
(cuda-gdb) s
0x0000000000401ff8 6 /tmp/tmpxft_000003d1_00000000-1_bitreverse.cudafe1.stub.c: No such file or directory.
in /tmp/tmpxft_000003d1_00000000-1_bitreverse.cudafe1.stub.c
(cuda-gdb) s
0x00007f37d9e4be50 in ?? () from /opt/cuda/lib64/libcudart.so.3
(cuda-gdb) s
Single stepping until exit from function cudaSetupArgument,
which has no line number information.
"/tmp/tmp_cudagdb_elf_32129_1038_882267283.o": can't read symbols: File format not recognized.
(cuda-gdb) s
Cannot find bounds of current function
(cuda-gdb)
Because it is the first time i really use the cuda-gdb (never used the gdb via command-line before) i dont really know where the error comes from. I hope that anybody can help me to find my mistake :)
An other question is: Is it possible to debug a graphical program using cuda-gdb ?
Best,
David