zoukankan      html  css  js  c++  java
  • Visual Studio 2015中使用gdb远程调试linux程序

    VS的debug功能非常强大,相比而言linux上的图形化调试一直不是很好用。
    如果可以使用VS来调试linux程序,应该是一件比较愉快的事情。

    这在2015中变得可能,因为从2015开始VS支持Android、iOS开发和调试。
    虽然并没有正式提供linux程序的调试支持,但是可以通过一些技巧达到

    微软开源了MIEngine项目,通过Machine Interface ("MI")与gdb、lldb交互。
    VS通过该MIEngine即可调试linux程序(visual studio code的cpptools插件也集成MIEngine)。

    MIEngine的wiki有篇文章介绍了调试步骤。Start debugging other platforms using the MIEngine
    不过由于文章较为简略,还是踩了点坑

    1. 首先在linux主机(虚拟机)上使用-g编译c++代码
    2. 下载plink,并测试ssh可以登录
    3. VS2015在安装时需要勾选交叉平台手机开发下面的Visual C++手机开发
    4. 新建一个c++ makefile项目,把源码添加到项目中
    5. 新建一个debug.xml文件,输入以下内容
    <PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014" 
            PipePath="plink.exe" PipeArguments="-pw 123456 user@server -batch -t gdb --interpreter=mi" 
            ExePath="/home/user/YourDir/exe" ExeArguments="" 
            TargetArchitecture="X64" WorkingDirectory="/home/user/YourDir" AdditionalSOLibSearchPath=""> 
    </PipeLaunchOptions>
    

    需要注意:

    • plink需要在系统path中,如果plink无法找到,会弹窗提示无法找到文件
    • plink支持password和ppk两种方式登录
    1. 打开 view -> other window -> command window
    2. 输入命令
    `Debug.MIDebugLaunch /Executable:foo /OptionsFile:d:debug.xml`
    
    • 有些过时的教程使用GDBLaunch,已废弃
    • foo 名字自定义,不重要
    • OptionsFile 需要绝对路径,如果找不到OptionsFile,则报错
      Options file '*.xml' does not exist
  • 相关阅读:
    数据结构13——博弈论SG函数
    数据结构12——最近公共祖先
    数据结构11——双联通
    mui
    rem
    关于apicloud图片缓存
    apicloud代码压缩和全局加密
    数据库设计
    common常用到的类
    RSA生成、加密、解密、签名。
  • 原文地址:https://www.cnblogs.com/lingdhox/p/5837973.html
Copyright © 2011-2022 走看看