
使用WSL将不再需要ssh连接VS和Linux虚拟机
Visual Studio 的 WSL 2 工具集允许您从 Visual Studio 在 WSL 2 发行版上构建和调试 C++ 代码,而无需添加 SSH 连接。
原理
VS是先与WSL2建立联系,然后用WSL2上的g++ 编译代码,gdb调试程序。
codeblocks设置断点和单步调试方法:主要是建一个project;而且project要放在英文目录下面;程序项目的目录里不能有中文;newproject->consoleapplication->选择corc++->filename->有个debug要钩上->写程序;编译后使光标定位在程序某处,按F4使程序运行到光标处,再按F7就可以单步调试,按Shift+F7单步进入。一. 调试前的准备1) 将工程所用的*.cpp和*.h文件放到相同目录下,工程文件*.prj也建在此目录下,并且导出Makefile到此目录下( Windows系统和Linux的目录路径表示方法不同,用此法可避免调试时找不到源代码文件的路径)2) 将整个工程目录打包拷贝到Linux主机上,然后解压;3) 在Linux主机上进入工程目录,运行make编译,把编译好的程序(aout.exe)拷贝到Windows主机的工程目录;(此时Windows主机与Linux主机上工程目录内的源码文件和执行程序应该完全相同)4) 检查Linux主机上gdb和gdbserver是否正确安装,版本是否6.6以上;$ gdb -v二. 调试环境设置1) 在Windows主机上运行GCCIDE,打开工程文件;2) 假定Linux主机的IP为192.168.1.185,在菜单\调试\调试设置内如下设置:3) 在Linux主机上进入工程目录,运行gdbserver命令:$ gdbserver 192.168.1.185:2222 aout.exe(aout.exe实际上是elf格式的Linux程序,取此名称仅仅只是为方便识别)4) 检查网络环境,确保调试过程中不因网络故障而影响调试;三. 调试过程1) 调试过程几乎与本机调试一样,只有被调试程序(aout.exe)的输出是在Linux主机上,不在Windows主机上;2) 可以在GCCIDE的命令条上发gdb命令,tty命令可以重定向被调试程序的输出(仍然在Linux主机上)四. 调试中常见问题处理1) 调试开始后,连不到Linux主机;检查Linux主机上是否运行gdbserver,每次调试都要重新运行gdbserver;$ gdbserver 192.168.1.185:2222 aout.exe2) 重新打开工程或重起GCCIDE后,上次的调试设置无效;目前GCCIDE暂时没有提供保存上次调试设置的功能。3) 断点设置没生效;如果被调试程序处于运行状态,不是中断状态,gdb不会回到提示符状态,也不会受理用户命令;五. 调试日志欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)