vscode C++远程调试运行(学习C++用)

下面是vscode C++远程调试运行的攻略:

准备工作

首先,我们需要在本地安装 Visual Studio Code 和 C++ 编译器,以及在远程服务器上安装 gdbserver 和相应的 C++ 编译器。

  1. 安装 Visual Studio Code:进入Visual Studio Code官网,下载并安装最新版本。

  2. 安装 C++ 编译器:如果你已经安装了 C++ 编译器,请跳过这一步。如果未安装,请根据自己的操作系统下载并安装对应版本的编译器。例如,在Ubuntu上执行以下命令安装 g++

sudo apt-get update
sudo apt-get install g++

  1. 安装远程服务器上的 gdbserver:假设你的远程服务器是基于Linux的,那么你可以通过以下命令安装 gdbserver

sudo apt-get update
sudo apt-get install gdbserver

  1. 确保本地和远程服务器上的 C++ 编译器版本一致。

配置 Visual Studio Code

接下来,我们需要在 Visual Studio Code 中进行一些设置。

  1. 安装插件:打开 Visual Studio Code,在左侧菜单栏选择 Extensions,搜索并安装 C/C++Remote Development 插件。

  2. 打开远程工作区:在 Visual Studio Code 左侧菜单栏选择 Remote Explorer,点击左上角的图标,选择 Remote-SSH: Connect to Host...,输入远程服务器的 SSH 地址和密钥,连接到远程服务器。

  3. 新建一个 C++ 项目:在 Visual Studio Code 左侧菜单栏选择 Explorer,右键单击空白区域,选择 New Folder,输入项目名称。选中该文件夹后,点击左侧菜单栏的 Terminal,打开终端窗口,执行以下命令:

cd [项目路径]
g++ -g -o hello_world hello_world.cpp

其中 hello_world.cpp 是你的源代码文件名。如果代码中包含多个源文件,则需要将它们一起编译成一个可执行文件。

  1. 在 Windows 计算机上安装 Cygwin:如果你使用的是 Windows 平台,你需要在本地计算机上安装 Cygwin。

  2. 下载地址:https://www.cygwin.com/

  3. 安装说明:打开下载的安装程序,安装过程中选择默认的选项即可。

  4. 配置 Visual Studio Code 的 launch.json 文件:在 Visual Studio Code 中,通过菜单栏选择 Run->Add Configuration... 打开 launch.json 文件,将以下配置粘贴进去:

json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/${workspaceRootFolderName}",
"processId": "${command:pickRemoteProcess}",
"pipeTransport": {
"pipeProgram": "ssh",
"pipeArgs": ["-T", "-x", "-a", "-o", "LogLevel=error", "-p", "${remotePort}", "${remoteUser}@${remoteHost}"],
"debuggerPath": "/usr/bin/gdbserver",
"pipeCwd": "${workspaceFolder}",
"quoteArgs": false,
"pipeEnv": {}
},
"MIMode": "gdb",
"setupCommands": [
{
"description": "enable gdbserver",
"text": "-enable-remote-debugging\n",
"ignoreFailures": true
}
],
"logging": {
"moduleLoad": false,
"engineLogging": false,
"trace": true
}
}
],
"compounds": []
}

其中 "program": "${workspaceFolder}/${workspaceRootFolderName}" 表示调试时要运行的可执行文件路径;"processId": "${command:pickRemoteProcess}" 表示从远程服务器中选择要调试的进程。

开始调试

  1. 使用 VS Code连接到远程计算机,打开本地计算机的一个终端,在终端中输入以下命令,开启gdbserver程序:

gdbserver :2333 [可执行文件路径]

其中,2333表示开启的端口号,你可以自定义;[可执行文件路径]表示你在第3步中编译出的可执行文件路径。

  1. 在 Visual Studio Code 左侧选择 Run,点击菜单栏中的 Run->Attach to Remote Process,选择在远程服务器上刚才启动的 gdbserver 进程,开始调试程序。

  2. 在调试过程中,你可以设置断点、单步调试、查看变量值等。

这是一个简单的示例,仅供参考。根据具体情况,可能需要进行一些调整,比如远程服务器的配置和网络环境等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vscode C++远程调试运行(学习C++用) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Win8.1系统打开应用程序提示错误代码0xc000007b的解决方法

    针对Win8.1系统打开应用程序提示错误代码0xc000007b的问题,以下是完整攻略的步骤说明: 步骤一:检查系统文件 打开电脑的命令提示符:在桌面空白处单击鼠标右键,选择“新建”-“快捷方式”; 在快捷方式的文本框中输入“cmd.exe”,点击“下一步”; 输入“命令提示符”作为快捷方式的名称,点击“完成”; 右键单击刚刚创建的“命令提示符”快捷方式,选…

    C 2023年5月24日
    00
  • Linux系统下如何使用C++解析json文件详解

    下面是在Linux操作系统下如何使用C++解析Json文件的详细攻略。 1. 概述 在Linux系统下,C++解析Json文件的主要方式是使用第三方库,而rapidjson是其中一个被广泛使用的库,它提供了高性能、易使用、轻量级的Json解析功能,同时支持DOM(文档对象模型)和SAX(事件驱动)两种解析方式。接下来将以rapidjson为例,介绍如何在Li…

    C 2023年5月23日
    00
  • 基于C++和MFC开发象棋程序

    首先我将整个攻略分为四个步骤:设计需求、编写程序、测试调试、部署发布,下面我将详细讲解每一步骤。 1. 设计需求 在设计象棋程序时,先要明确需求和目标,需要考虑的基本功能包括:棋盘、棋子、走法、算法、界面等。根据需求,我们可以开始设计程序的结构和框架。 以下是一些示例说明: 示例1:棋子类设计 棋子类应该包括棋子的类型、颜色、当前位置等属性,以及移动方法、判…

    C 2023年5月23日
    00
  • C++中四种加密算法之AES源代码

    C++中四种加密算法之AES源代码 什么是AES算法 AES是Advanced Encryption Standard的缩写,它是一种对称加密算法,也是目前最常用的加密算法之一。AES算法可以对数据进行加密和解密,同时还能保证数据的完整性和安全性。 AES算法实现步骤 AES算法实现一般包含以下几个步骤: 密钥扩展:对输入密钥进行处理,扩展成多个轮密钥。 初…

    C 2023年5月23日
    00
  • JavaScript中的连续赋值问题实例分析

    当我们在 JavaScript 语言中使用连续赋值时,需要注意一些问题。本文将介绍这些问题,并通过实例进行详细分析,帮助开发者更好地理解。 什么是连续赋值? 在 JavaScript 语言中,变量可以连续被赋值。连续赋值是指将多个值赋给多个变量的过程。例如: let a = 1, b = 2, c = 3; a = b = c = 4; console.lo…

    C 2023年5月22日
    00
  • Java随机生成手机短信验证码的方法

    Java随机生成手机短信验证码的方法 生成随机手机短信验证码是现在很多项目都需要用到的功能之一,本文将介绍如何使用Java生成随机手机短信验证码。 一、Java生成随机手机短信验证码的方法 Java生成随机手机短信验证码的方法如下: import java.util.Random; public class RandomUtils { private sta…

    C 2023年5月22日
    00
  • C/C++新建注册表项的代码示例

    下面我来给你详细讲解如何在C/C++中创建和修改Windows系统的注册表项。 首先,可以使用WinAPI提供的Registry相关函数来实现对注册表项进行增删改查操作。需要注意的是,这些函数在使用时需要管理员权限。 新建注册表项 要新建一个注册表项,可以使用RegCreateKeyEx函数。该函数有以下几个参数: HKEY hKey:表示注册表项的父节点。…

    C 2023年5月24日
    00
  • C语言深入讲解语句与选择结构的使用

    C语言深入讲解语句与选择结构的使用 1. 语句的基础知识 在使用C语言编程时,我们使用语句来实现程序的功能。语句是一个完整的操作指令,每一个语句都执行一定的任务。 C语言的基本语句分为以下几种: 1.1 赋值语句 赋值语句可以将一个值赋给变量,语法如下: variable = expression; 其中,variable 表示变量名,expression …

    C 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部