通过SSH连接Linux服务器,运用Makefile能够成功编译CUDA程序,make all, make run一切正常,能够输出结果并打印最后一行的程序运行结束标记。
但是一进行调试,要么卡住,要么一闪而过。
launch.json和tasks.json似乎都配置成功了,但是始终不行。
从逻辑上来讲,make run能够成功运行并生成可执行文件,说明编译成功了;
无法调试,要么是程序编译有问题,要么是设置有问题;
既然编译没问题,那么必是设置有问题;
问题如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/workspace/pro",
"args": [],
"stopAtEntry": false,
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "/root/miniconda3/lib/python3.8/site-packages/trtpy/trt8cuda115cudnn8/lib64:/root/miniconda3/lib/python3.8/site-packages/trtpy/lib:/root/miniconda3/lib/python3.8/site-packages/trtpy/cpp-packages/opencv4.2/lib"
}
],
"externalConsole": false, // 要设置为false,不然无法调试
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"preLaunchTask": "build"
}
]
}
问题出在这个"externalConsole",要设置为false, 不然在Linux上似乎无法正常调试。