VSCode Remote-ssh gdb 远程调试

一:安装VSCode IDE ,并且安装Remote-ssh 插件

        参考Remote-ssh插件安装及使用

二:增加launch.json

        一般情况下默认是 No configurations, 此时按下 F5,会提示你配置文件 launch.json 不存在,点击 Open launch.json,然后开始下一步的 launch.json 配置。

        在.vscode目录下会生成task.json和launch.json。

        task.json:用于编译

        launch.json:用于调试

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    // 调试使用文件
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/test",//需要运行的程序
            "args": [],//程序执行需要传入的参数
            "stopAtEntry": false,//true时,打开控制台以后停止,暂时不执行程序
            "cwd": "${workspaceFolder}",//当前工作路径
            "environment": [],
            "externalConsole": false,//使用外部控制台
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: make build project",//执行编译任务,内容对应task.json中label选项
            "miDebuggerPath": "/usr/bin/gdb"//调试指令
        }
    ]
}

        其中需要修改的字段为:

    1.program 要调试的程序名(包含路径,最好绝对路径,免得麻烦)

    2.miDebuggerServerAddress 服务器的地址和端口 (本文没用到)

    3.cwd 调试程序的路径

    4.miDebuggerPath gdb 的路径

           5.preLaunchTask 配置编译指令,指向task.json

三:增加task.json

{
    //编译使用文件
    "tasks": [
        {
            "type": "process",
            "label": "c/c++:make project",//任务名字,任务名字叫"c/c++:make project",
                                          //与launch.json中的preLaunchTask对应
            "command": "make",//编译命令
            "args": [],//编译参数
            "problemMatcher": [
                "$gcc"//使用gcc捕获错误
            ],
            "options": {
                "cwd": "${workspaceFolder}"//vs code 打开的文件夹路径
            },
 
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

         先执行task.json指定信息,进行编译。然后再执行launch.json进行调试。

四:gdb调试快捷键

        工具栏从左到右依次代表:

                继续 / 暂停 F5

                跳过 F10

                跳入 F11

                跳出 Shift+F11

                重启 Ctrl+Shift+F5

                停止 Shift+F5

五:创建工程目录,编码Makefile文件,编译选项需要添加-g

        Makefile example 1:

DEBUG=debug.elf
$(DEBUG):$(OBJS)
	g++ -Wall -o server server.cpp -I../src/ ../src/TCPServer.cpp ../src/TCPClient.cpp -std=c++11 -lpthread -g
all: 
	g++ -Wall -o server server.cpp -I../src/ ../src/TCPServer.cpp ../src/TCPClient.cpp -std=c++11 -lpthread -g

        Makefile example 2:

TOOL_CHAIN_ROOT_DIR=/home/sws/gitee/lede_17.01/staging_dir
TOOL_CHAIN=${TOOL_CHAIN_ROOT_DIR}/toolchain-arm_cortex-a7+neon-vfpv4_gcc-5.4.0_musl-1.1.16_eabi/bin/
#export STAGING_DIR=${TOOL_CHAIN_ROOT_DIR}/toolchain-arm_cortex-a7+neon-vfpv4_gcc-5.4.0_musl-1.1.16_eabi/bin:$STAGING_DIR

CC=${TOOL_CHAIN}arm-openwrt-linux-muslgnueabi-gcc
CXX=${TOOL_CHAIN}arm-openwrt-linux-muslgnueabi-g++

#获取.cpp文件
SrcFiles=$(wildcard *.cpp)
#使用替换函数获取.o文件
ObjFiles=$(patsubst %.cpp,%.o,$(SrcFiles))
#生成的可执行文件
all:Robot
#目标文件依赖于.o文件
Robot:$(ObjFiles)
    ${CXX} -o $@ $(SrcFiles) -lpthread -std=c++0x -g -Wwrite-strings -I./
#.o文件依赖于.cpp文件,通配使用,一条就够
%.o:%.cpp
    ${CXX} -c $< -lpthread -std=c++0x -g -Wwrite-strings -I./
clean:
    rm -f *.o
    rm -f Robot

        Makefile example 3:

# C compiler options
CXX	= g++   
#CFLAGS	= -g -O2             
RELEASE	= release.elf
DEBUG	= debug.elf
PWD := $(shell pwd)
LIBS = -std=c++11 -lstdc++ -lnsl -lrt -L. \
		  -I $(PWD)/zookeeper/ \
		  -I $(PWD) \
		  -I $(PWD)/mysql/include/ \
		  -lmysqlclient -lm -lssl -lcrypto -lz -lpthread -lrt -ldl -lhiredis -g -o ClusterManager 
INC	= ZookeeperLib.h
LD_LIBRARY_PATH= 

# Source files
SRCS = main.cpp \
		redisLib.cpp \
		DataBase.cpp  \
		ZookeeperLib.cpp \
		LinuxPublicLibrary.cpp \
		strnormalize.cpp \
		libzookeeper.a \
		libhashtable.a \
		liblog4cplus.a \
		libssl.a \
		libcrypto.a \
		libmysqlclient.a

# Make everything
all:	$(RELEASE) $(DEBUG)
 
# Make the application
$(RELEASE): $(OBJS)
	$(CC) -o $(RELEASE) $(SRCS) $(LIBS)

$(DEBUG): $(OBJS)
	$(CC) -o $(DEBUG) $(SRCS) $(LIBS) -ggdb3

#
# Clean all object files...
#
clean:
	$(RM) $(DEBUG) $(RELEASE) 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VSCode Remote是一种远程开发工具,可以与开发板进行调试和开发操作。使用VSCode Remote进行开发板调试可以带来许多好处。 首先,VSCode Remote提供了一个与开发板连接的安全、可靠的远程环境。通过配置适当的连接设置,可以直接在本地的VSCode编辑器中与开发板进行连接,并获得对开发板中的代码和资源的访问权限。这样,可以在开发板上调试代码,查看变量的值、程序的执行流程等信息,提高开发效率。 其次,VSCode Remote提供了强大的调试功能。通过使用VSCode Remote调试插件,可以在本地VSCode编辑器中设置断点、单步执行代码、查看变量的值等。调试过程中的信息也会实时反馈到本地的编辑器中,方便程序员进行代码的修复和调试。这使得开发板调试过程更加直观、高效。 此外,VSCode Remote还支持多种开发板的调试工具链和调试协议。通过选择适当的调试工具和配置参数,可以与不同类型的开发板进行连接和调试。这使得VSCode Remote成为一个灵活、通用的开发工具,适用于各种不同的开发板和硬件平台。 总结来说,VSCode Remote是一个功能强大的远程开发工具,可以实现与开发板的远程连接和调试。它提供了安全、可靠的环境,具备强大的调试功能,并支持多种开发板的调试工具链。这些特点使得VSCode Remote成为开发者在开发板调试过程中的重要利器。 ### 回答2: VSCode Remote 是一个功能强大的工具,它可以通过 SSH 访问远程设备并在远程设备上进行代码编辑、调试和开发。在调试开发板的场景中,使用 VSCode Remote 可以帮助开发者更加便捷地进行开发。 首先,要在开发板上安装 SSH 服务器,并确保与开发板的网络连接通畅。然后,在本地电脑上安装 VSCode,并通过插件安装 Remote Development 扩展。 接下来,在 VSCode 中打开一个项目,然后点击左下角的 Remote Explorer 图标。选择“Add SSH Host…”,输入开发板的 IP 地址、用户名和密码,点击添加。 连接成功后,右下角会提示连接成功,并显示工作目录。我们可以在 VSCode 的编辑器中编辑远程设备上的代码,并将代码保存到开发板上。 要进行远程调试,我们首先需要在开发板上安装调试器(如 gdb),并确保调试器的路径正确。然后,在 VSCode 中打开需要调试的文件,设置断点,并点击左侧的调试按钮。选择“Add Configuration”添加调试配置。 在调试配置中,我们需要设置远程设备的配置信息,包括 IP 地址、用户名、密码以及调试器的路径。保存配置后,点击调试按钮即可开始远程调试。 在调试过程中,我们可以通过 VSCode调试工具栏进行断点调试、变量查看和代码跳转。通过远程调试,我们可以在本地电脑上进行代码的开发、调试和测试,而无需直接连接到开发板上。 总结来说,VSCode Remote 提供了一种便捷的方式来进行开发板的调试和开发工作。通过 SSH 访问远程设备,并在本地 VSCode 中进行代码编辑和调试,大大提高了开发效率。 ### 回答3: VSCode Remote是一款强大的开发工具,它可以帮助开发人员在本地计算机上使用远程调试功能对开发板进行调试。这为开发板的开发工作提供了便利和灵活性。 使用VSCode Remote调试开发板的步骤如下: 首先,确保开发板与本地计算机通过某种连接方式(例如串口连接、网络连接等)相连。这样,本地计算机才能与开发板进行通信。 接下来,在本地计算机上安装VSCode Remote插件,并启动VSCode。 在VSCode中,选择“Remote”选项并配置连接方式。根据开发板的实际情况,选择相应的连接方式。例如,如果开发板通过串口连接,则选择“Serial Port”;如果通过网络连接,则选择“SSH”或“Remote-SSH”。 完成连接配置后,选择“Connect”按钮,VSCode将尝试与开发板建立连接。如果配置正确,连接成功后,VSCode界面将显示与开发板相关的信息。 接下来,我们需要在VSCode上设置调试环境。根据不同的开发板和开发需求,可以使用不同的调试器。例如,对于Arduino开发,可以使用Arduino调试器;对于Raspberry Pi开发,可以使用Python调试器。 完成调试环境的设置后,我们可以开始编写并调试代码了。通过VSCode的编辑器功能,可以编写开发板上运行的代码,并通过VSCode Remote将代码传输到开发板上。然后,通过设置断点、监视变量等调试功能,可以对代码进行调试。 在调试过程中,可以使用VSCode Remote提供的交互式控制台进行命令行操作,以进一步辅助调试工作。 总结起来,VSCode Remote是一款非常实用的工具,可以提供方便快捷的开发板调试功能。通过它,开发人员可以在本地计算机上编写、调试和管理开发板的代码,提高开发效率和调试效果。无论是嵌入式开发还是物联网开发,VSCode Remote都是一个不可或缺的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值