手把手教你如何使用VScode调试ceph-osd

前言:

本文以ceph osd部分为例,为您演示通过第三方社区提供的vscode 编辑软件,对ceph osd进行进行图形化单步调试以及配置操作。

vscode是微软公司一个开源的编译器具备轻量的特点,通过插件安装方式提供了丰富的调试功能。通常 Linux环境的c/c++软件开发使用GDB进行命令行调试,命令行操方式极其不方便。使用vscode 的图形化界面可替代gdb 命令行 ,整个开发调试过程更加便捷。

 

1. 下载安装windows的vscode

在以下地址下载

https://code.visualstudio.com/

安装openssh (一般情况不用自己手动安装)

如果需要远程开发,Windows机器也需要支持openssh,如果本机没有,会报错

报错信息类似如下:

The terminal process command 'cmd.exe /c (type & exit /b 0' failed to launch

可以到微软官网上下载ssh。

以下内容中,ceph源码路径在~/ceph_soft/ceph目录下,其编译运行文件在~/ceph_soft/ceph/build/bin当中。启动调试前需要停止本地的osd运行服务。

Windows10新版本会自带,但是有的没有自带的就需要安装

在安装完成之后,点击左侧的Remote-SSH选项卡,再将鼠标移向CONNECTIONS栏,点击出现的configure:

填写linux服务器的ssh端口和用户名(如果是默认的22端口可不用填写)

按下ctrl + s 保存 然后连接

输入密码,总共有多次输入密码的流程留意窗口变化

打开远程服务器的文件夹

 

2. 远程连接遇到的问题以及技巧

因为ceph工程文件数量众多会出现 无法在这个大型工作区中监视文件更改。请按照说明链接来解决此问题的问题

原因:工作区很大并且文件很多,导致VS Code文件观察程序的句柄达到上限。

解决方法

编辑linux服务器中的 /etc/sysctl.conf

将以下一行添加到文件末尾,可以将限制增加到最大值

fs.inotify.max_user_watches=524288

保存之后 输入sysctl -p可解决,在最左上栏查看(V) -> 终端可以调出终端窗口对Linux服务器输入命令。

 

3. 远程调试

首先前提Linux服务器已经安装了GDB,否则会提示出错。

在ceph工程目录下添加launch.json文件。在最左上栏运行(R) -> 添加配置 ,注意一定要在ceph当前工程目录。

修改配置launch.json中的program、args选项。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "osd-debug", //名字随便
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/bin/ceph-osd", //这里要修改
            "args": ["-d", "--cluster", "ceph","--id", "0", "--setuser", "root", "--setgroup", "root"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

按照下图点击就可以开始调试之路

 

4. 免密码登录方法

1.以管理员模式打开powershell 输入ssh-keygen 生成一对密钥对

2.拷贝C:\Users\用户名.ssh目录下的id_rsa.pub到服务器上除了.ssh/目录的任意地方。注意:不要覆盖服务器下的.ssh/id_rsa.pub

3.在服务器上执行cat id_rsa.pub >> ~/.ssh/authorized_keys 当前服务器用户目录的的.ssh

简单来说就是把电脑上的id_rsa.pub 添加到服务器下的authorized_keys文件中。

 

结束

设置vscode 远程连接到Linux 服务器环境并不复杂,简单几个步骤便可从GDB黑框框界面中解脱,图形界面编辑器的调式方法使从代码上分析cpeh、redis 这类大型C/C++工程更加得心应手。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/3691309/blog/4720820

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。