首页 > 其他分享 >Visual Studio Code 远程调试 Twemproxy

Visual Studio Code 远程调试 Twemproxy

时间:2023-07-12 17:26:27浏览次数:34  
标签:Code Twemproxy VSCode Visual ssh 远程 调试 SSH

要使用 Visual Studio Code 远程调试 Twemproxy,请按照以下步骤操作:

  1. 安装所需扩展和软件

    • 在 VSCode 中安装 Remote - SSH 扩展。
    • 确保远程主机上已安装 gccmake 和 gdb 等编译和调试工具。
  2. 配置 SSH 连接

    • 打开 VSCode,并点击左侧边栏 "Remote Explorer" 图标。
    • 选择 "SSH Targets",然后点击右上角的 "+" 图标。
    • 输入远程主机的 SSH 连接信息,例如:ssh user@hostname
    • 选择一个私钥文件(如果需要)。
    • 保存配置到 ~/.ssh/config 文件(在 Windows 上为 %USERPROFILE%\.ssh\config)。
    • 点击 "Remote Explorer" 中的连接图标以连接到远程主机。
  3. 编译 Twemproxy

    • 首先,从 GitHub 上克隆 Twemproxy 仓库:

       
      git clone https://github.com/twitter/twemproxy.git
      
    • 进入 twemproxy 目录并编译 Twemproxy。使用 --enable-debug=full 选项以便生成调试信息:

       
      cd twemproxy
      CFLAGS="-O0 -g" ./configure --enable-debug=full
      make
      
  4. 启动 Twemproxy

    • 在远程主机上创建 Twemproxy 配置文件(例如 twemproxy.yml),并配置你的代理和后端 Redis 服务器。

    • 运行 Twemproxy,指定配置文件:

       
      ./src/nutcracker -c twemproxy.yml
      
  5. 配置 VSCode 调试

    • 在 VSCode 中,打开远程主机上的 Twemproxy 项目文件夹。

    • 创建一个新的 launch.json 文件,并添加以下配置:

      json
      {
        "version": "0.2.0",
        "configurations": [
          {
            "name": "Twemproxy",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/src/nutcracker",
            "processId": "${command:pickProcess}",
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
              {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
              }
            ],
            "cwd": "${workspaceFolder}"
          }
        ]
      }
      
  6. 开始调试

    • 在 VSCode 中,点击左侧边栏的 "Run and Debug" 图标。
    • 选择 "Twemproxy" 配置,然后点击 "Run" 图标。
    • VSCode 将列出正在运行的进程,选择 Twemproxy 进程(nutcracker)以附加调试器。
    • 设置断点,观察变量等,享受调试过程。

现在,你已经成功配置了 VSCode 远程调试 Twemproxy。根据需要进行调试和修改代码,以满足你的需求。

 

 

在 VSCode 中,你可以使用 SSH Key 来实现免密码登录。以下是配置步骤:
  1. 首先,你需要在本地计算机上生成 SSH Key。在终端中输入以下命令:

bash

Copy

ssh-keygen -t rsa -b 4096
按照提示进行操作,你可以为你的密钥设置一个密码,也可以选择不设置。
  1. 生成的 SSH Key 通常位于 ~/.ssh/ 目录下,有两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。
  2. 将公钥(id_rsa.pub 的内容)添加到远程服务器的 ~/.ssh/authorized_keys 文件中。你可以使用 ssh-copy-id 命令,也可以手动添加。

bash

Copy

ssh-copy-id -i ~/.ssh/id_rsa.pub your-username@your-server-ip
  1. 在 VSCode 中安装 Remote - SSH 扩展。
  2. 打开 Remote Explorer,点击左下角的 "+" 按钮,输入 ssh your-username@your-server-ip,然后按回车。
  3. VSCode 将会自动连接到远程服务器,因为你已经设置了 SSH Key,所以不需要输入密码。
注意:在进行以上操作时,请确保你有远程服务器的访问权限,并且知道你的用户名和服务器 IP 地址。

标签:Code,Twemproxy,VSCode,Visual,ssh,远程,调试,SSH
From: https://www.cnblogs.com/wangbin/p/17548251.html

相关文章

  • Leetcode - 动态规划总结(必看!!!)
     一、labuladong动态规划模板思路wiki:https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/dong-tai-g-1e688/题目: 动态规划模板思路: 二、我自己如何理解【状态】【选择】 以714题目《最佳时机去买卖股票+手续费》为例子:1.确定【状态】--寻找原问题和子问题中,......
  • Media Encoder 2023-视频编码软件mac/win版
    AdobeMediaEncoder2023是Adobe公司推出的一款专业的媒体编码和转换软件。作为AdobeCreativeCloud套件的一部分,它与其他Adobe创意应用程序(如PremierePro、AfterEffects)无缝集成,提供了一个强大的工具集,用于优化、转换和编码各种媒体文件。→→↓↓载MediaEncoder2......
  • LeetCode 剑指 Offer 11. 旋转数组的最小数字
    题目链接:LeetCode剑指Offer11.旋转数组的最小数字题意:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [......
  • LeetCode 剑指 Offer 12. 矩阵中的路径
    题目链接:LeetCode剑指Offer12.矩阵中的路径题意:给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元......
  • LeetCode 234. 回文链表
    classSolution{public:ListNode*reverse(ListNode*head)//翻转以head为头节点的链表{if(!head||!head->next)returnhead;autoa=head,b=head->next;while(b){autoc=b->next;b->next=a;......
  • LeetCode -- 918. 环形子数组的最大和
     遇到环形问题一般有两种考虑方法:1.破环成链2.分为数组中间部分和数组两边部分分别考虑本题采用第二种考虑方法,将原数组分为中间部分和两边部分分别考虑。中间部分即为子数组最大和,两边部分计总和减去中间部分最小和。classSolution{public:intma......
  • Visual C# 中XML注释换行
    只需将<para>标记用于诸如<summary>、<remarks>或<returns>等标记内即可 ///<summary>///基类(第1行)///<para>说明:(第2行)</para>///<para>封装一些常用的成员(第3行)</para>///<para>前面要用全角空格才能显示出空格来(第4行)</para>///</s......
  • 「解题报告」Codeforces Round #884 (Div. 1 + Div. 2) Editorial
    比赛地址:Dashboard-CodeforcesRound884(Div.1+Div.2)-Codeforces个人评价:这场是构造专场!A.SubtractionGameProblem-A-Codeforces有一堆石子(应该是石子),每次只能拿走\(a\)块或者\(b\)块,最先不能移动的人输,构造一个数\(n\),使得先手必输。两种构造方法:......
  • LeetCode 热题 100 之 128. 最长连续序列
    题目描述给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例2:输入:nums......
  • LeetCode -- 826. 安排工作以达到最大收益
     方法一:二分加枚举通过二分快速查找小于某个难度值的最大价值。classSolution{public:intmaxProfitAssignment(vector<int>&difficulty,vector<int>&profit,vector<int>&worker){constintn=(int)difficulty.size();vector<pai......