>개발 도구 >VSCode >vscode에서 원격 gdb를 디버깅하는 방법은 무엇입니까? 방법에 대한 자세한 설명

vscode에서 원격 gdb를 디버깅하는 방법은 무엇입니까? 방법에 대한 자세한 설명

青灯夜游
青灯夜游앞으로
2023-04-11 19:14:433258검색

vscode에서 원격 gdb를 디버깅하는 방법은 무엇입니까? 다음 글에서는 vscode의 원격 gdb 디버깅 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다!

vscode에서 원격 gdb를 디버깅하는 방법은 무엇입니까? 방법에 대한 자세한 설명

최근에 동료들의 도움으로 gdb 디버깅에 vscode를 사용해 보았는데 "정말 맛있었어요".

더 이상 고민하지 않고 이 기사에서 달성할 내용은 Linux 서버의 C++ 코드와 Windows 측 arm 임베디드 장치의 원격 디버깅, gdb 디버깅의 구성 및 사용 정리입니다.

1. 원격 연결

먼저 원격으로 서버에 연결해야 합니다. 플러그인 라이브러리에서 "remote-ssh"를 검색한 후 더블클릭하여 다운로드하고 설치합니다(아래 그림에서는 설치했습니다). ) 설치 후 사이드바 Remote Explorer를 클릭하면 나타납니다. [추천 학습: vscode tutorial, Programming Teaching]

+ 기호를 클릭하고 팝업 명령 창에 ssh 로그인 명령을 입력한 후 안내에 따라 비밀번호를 입력하고 확인하면 연결됩니다. 성공

2. GDB 환경 구성

서버측에서 C++ 코드를 생성합니다. 여기서는 "Linux의 C++에서 시스템 사용자 이름 가져오기"의 코드를 예로 들어 보겠습니다. 매우 간단합니다

#include <unistd.h>
#include <pwd.h>
#include <iostream>
 
int main()
{
	struct passwd* pwd;
	uid_t userid;
	userid = getuid();
	pwd = getpwuid(userid);
 
	std::cout << "pw_name:" << pwd->pw_name << std::endl;
	std::cout << "pw_passwd:" << pwd->pw_passwd << std::endl;
	std::cout << "pw_uid:" << pwd->pw_uid << std::endl;
	std::cout << "pw_gid:" << pwd->pw_gid << std::endl;
	std::cout << "pw_gecos:" << pwd->pw_gecos << std::endl;
	std::cout << "pw_dir:" << pwd->pw_dir << std::endl;
	std::cout << "pw_shell:" << pwd->pw_shell << std::endl;
 
    return 0;
}

컴파일 방법은 다음과 같습니다. -g 명령을 입력하세요. 그렇지 않으면 gdb 디버깅이 불가능합니다.

g++ -g test.cpp -o test

그런 다음 파일-폴더 열기를 클릭하고 확인 후 생성된 코드 경로를 찾을 수 있습니다. 왼쪽 리소스 관리자의 코드 파일.

처음 실행하려면 C++ 확장을 설치해야 합니다. 확장 페이지에서 C/C++를 설치합니다.

또한 GDB Debug를 검색하여 설치합니다.

설치 후 "실행 및 디버그"를 클릭합니다. " 버튼, " launch.json 생성" 파일,

C++(GDB/LLDB) 항목을 선택하면 launch.json 파일이 자동으로 생성됩니다. 내용은 다음과 같습니다

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}

아래 내용을 따라 수정하세요.

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
            "type": "cppdbg", //配置类型
            "request": "launch", //请求配置类型,可以是启动或者是附加
            "program": "${workspaceFolder}/test", //程序可执行文件的完整路径,${workspaceFolder}表示远程连接的初始路径
            "args": [], //传递给程序的命令行参数
            "stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
            "cwd": "${workspaceFolder}", //目标的工作目录
            "environment": [], //表示要预设的环境变量
            "externalConsole": false,//如果为true,则为调试对象启动控制台
            "MIMode": "gdb",//要连接到的控制台启动程序
            "setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

이제 환경이 구성되었습니다

3.GDB 디버깅 방법

중단점을 설정한 후 "실행 및 디버그"를 클릭하면 소스 코드의 줄 번호 왼쪽을 직접 클릭할 수 있습니다. (gdb)를 시작하려면 다음과 같이

디버깅 페이지에 들어갈 수 있습니다

변수 영역에서 변수 값을 직접 확인하여 디버깅 목적을 완료할 수 있습니다.

일반적으로 사용되는 디버깅 키는 다음과 같습니다

F5 디버깅 시작

F10 한 단계 건너뛰기

F11 한 단계 디버깅

shift + F11 한 단계 나가기

ctrl + Shift + F5 디버깅 다시 시작

shift + F5 중지 디버깅

4. 문제 요약

이전에 특정 장치에 연결한 적이 있고 이후 장치 교체 시 동일한 IP가 있거나 장치를 다시 설치했지만 IP가 변경되지 않은 경우 다시 연결할 때 오류가 보고됩니다. 호스트가 서버 IP를 Known_host

로 나열하기 때문입니다. IP를 찾고, 수정하고, 삭제하고 다시 연결할 수 있습니다

VSCode에 대한 자세한 내용을 보려면 다음을 방문하세요. vscode 기본 튜토리얼!

위 내용은 vscode에서 원격 gdb를 디버깅하는 방법은 무엇입니까? 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제