vscode를 사용하여 Linux 커널을 원격으로 디버깅
머리말
이전 기사에서는 QEMU+GDB를 사용하여 Linux 커널을 디버깅하는 방법을 소개했습니다. 그러나 때로는 GDB를 직접 사용하여 코드를 디버깅하고 보는 것이 그리 편리하지 않습니다. 따라서 이렇게 중요한 경우 vscode의 아티팩트가 누락될 수 있습니까? 이 문서에서는 vscode를 사용하여 커널을 원격으로 디버깅하는 방법을 소개합니다.
이 글의 환경:
- 윈도우10
- vscode
- 우분투 20.04
저는 개인적으로 Tencent Cloud Server를 사용하기 때문에 가상 머신 설치 과정을 저장합니다. vscode 구성에서 직접 시작하세요.
vscode 플러그인 설치
원격-ssh
플러그인 라이브러리에서 Remote-SSH 플러그인을 찾아 설치하세요.

설치가 완료되면 오른쪽 툴바에 추가 기능이 표시됩니다

F1을 눌러 대화 상자를 호출하고, remote-ssh를 입력하고, SSH 구성 파일 열기를 선택하세요.

첫 번째 프로필을 선택하세요

서버에 로그인하기 위해 개인키 방식을 사용하는데, IdentityFile은 개인키의 절대 경로를 채워줍니다.
구성 후 더하기 버튼을 클릭하여 서버에 로그인하세요

오류: SSH 호스트 XX 설정: scp
를 사용하여 호스트에 VS Code Server 복사 중연결하는 동안 멈춰서 SSH 호스트 XX 설정: scp를 사용하여 호스트에 VS 코드 서버 복사를 기다리고 있습니다.
이유
원격 서버의 홈 디렉터리~/.vscode-server/bin/commit_id/vscode-servlet.tar.gz
가 다운로드되지 않았기 때문입니다.
commit_id는 vscode [도움말]->[터미널]에서 확인할 수 있습니다.
솔루션
그런 다음 vscode-servlet.tar.gz를 수동으로 다운로드하겠습니다. 아래 링크를 통해 다운로드하세요.
으아악다음 명령줄을 실행하세요. ~/.vscode-server/bin
디렉터리의 모든 내용을 삭제하세요.
디렉토리가 없으면 생성하세요*. ~/.vscode-server/bin
으아악
디렉터리에 넣습니다. ~/.vscode-server/bin
는 2단계에서 기록한 commit_id로 바꿔야 합니다.${commit_id}
cd ~/.vscode-server/bin tar -zxf vscode-server-linux-x64.tar.gz mv vscode-server-linux-x64 ${commit_id}
报错:Permissions for ‘vscode_rsa’ are too open.
然后就可以在原来的文件浏览界面,打开远程的文件夹。但是在配置好进行连接的时候,VScode的终端报错了:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'vscode_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "vscode_rsa": bad permissions
根本原因是私钥的权限问题。这要是在Linux里,直接使用chmod,就可以修改,修改为644即可,但是windows,就稍微麻烦点。
在私钥上右击选择属性,然后选择【安全】选项卡,然后点击下面的【高级】按钮,然后在新弹出的窗口下方点击【禁用继承】,然后点击继承那个按钮上面的【添加】按钮重新将当前window登录用户设置为私钥的所有者,并勾选所有权限。最后跟下面一样即可:

这时再次打开VScode远程连接,就没有问题了。
C/C++
安装C/C++插件

依次点击【运行】->【打开配置】,将以下配置复制到launch.json中。
{ "version": "0.2.0", "configurations": [ { "name": "kernel-debug", "type": "cppdbg", "request": "launch", "miDebuggerServerAddress": "127.0.0.1:1234", "program": "${workspaceFolder}/vmlinux", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "logging": { "engineLogging": false }, "MIMode": "gdb", } ] }
然后在main函数中,打上两个断点,在服务器上开启QEMU,F5即可开启调试。

在vscode中调试内核,和正常的在windows调试代码是一样的,侧边栏可以看到变量,监视变量,调用堆栈等,非常方便。

大功告成,以后就可以在可视化界面调试内核了!

위 내용은 vscode를 사용하여 Linux 커널을 원격으로 디버깅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인터넷은 단일 운영 체제에 의존하지 않지만 Linux는 이에 중요한 역할을합니다. Linux는 서버 및 네트워크 장치에서 널리 사용되며 안정성, 보안 및 확장 성으로 인기가 있습니다.

Linux 운영 체제의 핵심은 명령 줄 인터페이스이며 명령 줄을 통해 다양한 작업을 수행 할 수 있습니다. 1. 파일 및 디렉토리 작업 LS, CD, MKDIR, RM 및 기타 명령을 사용하여 파일 및 디렉토리를 관리합니다. 2. 사용자 및 권한 관리는 UserAdd, Passwd, CHMOD 및 기타 명령을 통해 시스템 보안 및 리소스 할당을 보장합니다. 3. 프로세스 관리는 PS, Kill 및 기타 명령을 사용하여 시스템 프로세스를 모니터링하고 제어합니다. 4. 네트워크 운영에는 Ping, Ifconfig, SSH 및 기타 명령이 포함되어 있으며 네트워크 연결을 구성하고 관리합니다. 5. 시스템 모니터링 및 유지 관리 Top, DF, Du와 같은 명령을 사용하여 시스템의 작동 상태 및 리소스 사용을 이해합니다.

소개 Linux는 유연성과 효율성으로 인해 개발자, 시스템 관리자 및 전원 사용자가 선호하는 강력한 운영 체제입니다. 그러나 길고 복잡한 명령을 자주 사용하는 것은 지루하고 응급실이 될 수 있습니다.

Linux는 서버, 개발 환경 및 임베디드 시스템에 적합합니다. 1. 서버 운영 체제로서 Linux는 안정적이고 효율적이며 종종 고 대전성 애플리케이션을 배포하는 데 사용됩니다. 2. 개발 환경으로서 Linux는 효율적인 명령 줄 도구 및 패키지 관리 시스템을 제공하여 개발 효율성을 향상시킵니다. 3. 임베디드 시스템에서 Linux는 가볍고 사용자 정의 가능하며 자원이 제한된 환경에 적합합니다.

소개 : Linux 기반의 윤리적 해킹으로 디지털 프론티어 보안 점점 더 상호 연결된 세상에서 사이버 보안이 가장 중요합니다. 윤리적 해킹 및 침투 테스트는 취약점을 적극적으로 식별하고 완화하는 데 필수적입니다.

기본 Linux 학습 방법은 다음과 같습니다. 1. 파일 시스템 및 명령 줄 인터페이스 이해, 2. LS, CD, MKDIR, 3. 파일 생성 및 편집과 같은 파일 작업 배우기, 4. 파이프 라인 및 GREP 명령과 같은 고급 사용법, 5. 연습 및 탐색을 통해 지속적으로 기술을 향상시킵니다.

Linux는 서버, 임베디드 시스템 및 데스크탑 환경에서 널리 사용됩니다. 1) 서버 필드에서 Linux는 안정성 및 보안으로 인해 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하기에 이상적인 선택이되었습니다. 2) 임베디드 시스템에서 Linux는 높은 사용자 정의 및 효율성으로 인기가 있습니다. 3) 데스크탑 환경에서 Linux는 다양한 사용자의 요구를 충족시키기 위해 다양한 데스크탑 환경을 제공합니다.

Linux의 단점에는 사용자 경험, 소프트웨어 호환성, 하드웨어 지원 및 학습 곡선이 포함됩니다. 1. 사용자 경험은 Windows 또는 MacOS만큼 친절하지 않으며 명령 줄 인터페이스에 의존합니다. 2. 소프트웨어 호환성은 다른 시스템만큼 좋지 않으며 많은 상용 소프트웨어의 기본 버전이 부족합니다. 3. 하드웨어 지원은 Windows만큼 포괄적이지 않으며 드라이버를 수동으로 컴파일 할 수 있습니다. 4. 학습 곡선은 가파르고 명령 줄 운영을 마스터하는 데 시간과 인내가 필요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
