-
将程序编译成可调式版本
nvcc –g –G program.cu –o program
-g 表示将CPU代码(host)编译成可调式版本,-G表示将GPU代码(kernel)编译成可调式版本。
-
进入调试器
cuda-gdb program
-
调试指令
指令 | 简写 | 指令说明 | 举例 |
---|---|---|---|
file exe_name | 指定待调试的可执行文件 | file program | |
set args arg1 arg2 … | 设置命令行参数 | set args 1 2 | |
breakpoint | b | 设置断点 | b main b 数字 |
run | r | 在调试器中执行程序 | |
start | 开始执行程序,并在main的第一行停住 | ||
next | r | 单步执行到下一行 | |
step | s | 单步执行,会进入函数内部执行 | |
continue | c | 执行已暂停程序到下一断点或结尾处 | |
p | 打印参数信息,查看变量 | p var1 | |
thread | 列出当前主机线程 | ||
cuda | 列出当前活跃的kernel/grid/block/thread内容,并允许将焦点移至此处 | cuda thread(1, 1, 1) cuda kernel 1 block(1, 2, 1) | |
info | 查看参数所包含的具体信息 | info devices info kernels info threads | |
backtrace | bt | 显示当前函数调用栈的内容 |