使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

在Linux上开发C/C++程序,或许你会直接(本机或远端)登入Linux,打开编辑器写完代码后,就用gcc/g++来编译,遇到要除错(debug)的时候,则会选择使用gdb来进行除

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除错。现在,如果你刚好也很喜欢 Visual Studio,你可以不必改变习惯,用 Visual Studio 写程式、然后远端送到 Linux 上编译、甚至还能接上 gdb 来除错。这个对于开发像是嵌入式系统、或是 IoT 装置的程序等等就可以多多利用 Visual Studio 强大的 IDE 能力。

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

图: 应该有不少在 Linux 上写程式的开发人员是这么工作的吧?

  如何做?

  首先,你必须使用 Visual Studio 2015,你可以使用免费版[1]的 Visual Studio 2015 Community 或是其它更高等级的版本,记得在安装时要勾选 Visual C++ 以及 C++ 跨平台行动开发这两个元件:

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

  图: 安装 Visual C++

  然后只要再安装 Visual Studio GDB Debugger 这个扩充套件,就能够在 Visual Studio 的 Visual C++ > 跨平台的项目类型中选择 Makefile Project (GDB) 的项目范本。

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

图: 在 Visual Studio 中建立 Makefile Project (GDB)

  建立项目后,启始画面就会有简单的说明如何连接远端的 GDB 来进行除错,照着做应该就没有什么大问题了。会用到与 SSH 相关的工具可以到 PuTTY 的网站上下载相关的工具。

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

  图: 使用 VS GDB 扩充套件的教学

  首先在项目上按右键选择内容,设定侦错的环境,像是远端主机的位址、然后认证用的 pub/private key,还有连接的方式(ssh 或 plink)等等,这里要注意的是连接服务器是使用 RSA 的公私钥的方式进行认证,所以你必须先产生一组 RSA 金钥,然后在 Linux 主机上放好公钥,然后这里设定是用私钥去验证(图中的 .ppk 档桉)。

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

  图: 设定远端主机连线的资讯

  然后就是设定在编译程序时要如何把程式上传到目标的 Linux 机器上,然后用机器上的 gcc/g++ 来进行编译,切换到 NMake 的设定页,设定建置指令:

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

http://roucheng.cnblogs.com/  

图: 设定如何将程式丢上远端主机并且进行编译

  这里我的设定值是:

d:\tools\pscp.exe -i $(PrivateKey) “D:\Temp\Project1\Project1\main.cpp” $(RemoteUserName)@$(RemoteHostName):$(RemoteWorkingDirectory)/main.cpp

$(SecureShellExecutable) $(RemoteUserName)@$(RemoteHostName) -i $(PrivateKey) “cd $(RemoteWorkingDirectory);g++ -g main.cpp -o $(RemoteExecutable)”

  这里我是用 pscp 把档案传上 Linux 主机上后,再用 g++ 来进行编译,其它的变数都是前面设定的值,你可以根据你的工具以及档档案所在位置做修改。

  接下来你就可以开始撰写程序了,然后就像在 Visual Studio 里写其它程序一样设定中断点,但是执行时选择 Remote GDB 就可以开始进行远端侦错了。

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

  图: 启动远端主机的 gdb 来除错,但结合 Visual Studio 的侦错介面

  看起来就好像都是在 Visual Studio 中的除错画面,但是这个代码确实已经送上 Linux 主机进行编译,并且使用 gdb 来进行侦错了!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120658.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idm和百度云怎么组合 idm下载百度云大文件教程

    idm和百度云怎么组合 idm下载百度云大文件教程如今百度云限速想必是很多人都难以接受的,下载的速度慢如狗。那么如何配合上述的软件达到超速的下载的呢?工具/原料https://pan.baidu.com/s/1LYsnJDJGhz0zS4eTCJWFvQ方法/步骤把我们给出的链接地址软件下载,下载后解压此文件,得到一个crx文件,把它拖入浏览器上进行安装。非ie浏览器才可以使用的,电脑浏览器用不了。此时打开浏览器,搜索图二的脚本网页。进入网页后点…

    2022年6月17日
    40
  • 学习 Spring Boot 知识看这一篇就够了

    学习 Spring Boot 知识看这一篇就够了从2016年因为工作原因开始研究SpringBoot,先后写了很多关于SpringBoot的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分是在技术社区做的系列课程。我在写文章的时候将文章中的示例提取出来,作为开源代码分享了出来让大家以更方便的方式去学习(https://github.com/ityouknow/spri…

    2022年7月15日
    20
  • 原来都是freesync惹的锅「建议收藏」

    原来都是freesync惹的锅「建议收藏」今天贪便宜入了一款创维的2k显示屏,开始用N卡+DP线驱动得挺稳定,然后手闲开了freesync,结果就各种闪烁、条纹。最无奈的是显示器菜单里freesycn选项竟然灰了,关不上了,呜呼!在打算退货前,胡乱操作了一通,例如,菜单里恢复出厂设置,无果。用HDMI线降分辨率、降刷新率,无果。进入工程界面(按住M在POWERON),没敢乱调,退出。然后再在菜单里恢复出厂设置…….最后菜单中选模式为文本,重新DP线接入,竟然freesync被神奇地关闭了。之后,2k屏就再没闪过,千万不要乱动free

    2022年6月10日
    52
  • ubuntu与centos的对比和选择「建议收藏」

    ubuntu与centos的对比和选择「建议收藏」一、分别介绍CentOS(CommunityENTerpriseOperatingSystem)是Linux发行版之一,它是来自于RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成。RedHatEnterpriseLinux(RHEL)是企业发行版。它每五年左右更新一次,在系统的稳定性,前瞻性和安全性上有着极大的优势。由于CentOS…

    2025年9月6日
    7
  • 苹果4s怎么越狱_越狱源和插件大全2020.4.4

    苹果4s怎么越狱_越狱源和插件大全2020.4.4很久没发布关于越狱的消息了,其实也是因为我个人对于越狱玩插件还是少了一些,除非我发布绕ID,解锁之类的教程,才会简单说一下怎么越狱,现在的越狱都比较简单了,小白都可以自行操作了,直接使用“爱思助手”,就能完美越狱。越狱就是添加新功能和破解(各类VIP破解都懂的)、美化,基本上也就这样。现在有两种破解的应用商店,一个是我们熟悉的Cydia,一个是sileo。建议大家用前者。Cydia目前是…

    2022年6月11日
    112
  • 短信指令_手机自动发短信一串代码

    短信指令_手机自动发短信一串代码===========移动短信指令=================发送CXBX到10086,查询当月套餐剩余短信条数。发送CXGFX到10086,查询当月飞信GPRS套餐剩余流量。发送CXGTC到10086,查询当月GPRS套餐剩余流量。发送CXCCT到10086,查询当月超级畅听套餐剩余流量。发送CXGLL到10086,查询当月已使用的GPRS流量总和。发送CXDX120,查询当月可选计划…

    2022年10月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号