Rumah > alat pembangunan > VSCode > Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

青灯夜游
Lepaskan: 2022-11-04 09:57:22
ke hadapan
3506 orang telah melayarinya

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

Saya sedang mempelajari pembangunan pelayan web Linux baru-baru ini, dan saya perlu menyahpepijat kod C/C saya sendiri di bawah Linux, tetapi Linux tidak semudah Visio Studio atau persekitaran pembangunan bersepadu lain di bawah Windows , agak menyusahkan untuk dibangunkan di bawah Linux sekarang. Jadi anda boleh mempertimbangkan untuk menggunakan VScode untuk pembangunan jauh. Walau bagaimanapun, banyak tutorial di Internet tidak begitu jelas Setelah mencuba banyak tutorial, saya menghadapi banyak masalah Ringkasan akhir adalah seperti berikut. [Pembelajaran yang disyorkan: "Tutorial vscode"]

1. Konfigurasi sistem

Sistem jauh: ubuntu18.04 (mesin maya)
Hos pembangunan: windows10

2. Perisian dan tetapan pemasangan jauh Ubuntu

(1) Pasang perisian yang diperlukan: ssh (komunikasi sistem), gdb , gsdbserver (penyahpepijatan kod):

sudo apt-get install openssh-server
sudo apt-get install gdb
sudo apt-get install gdbserver
Salin selepas log masuk

(2) Cipta folder ujian dan fail

Nota:

  • Walaupun anda mungkin mahu melakukannya dengan betul dalam satu langkah dan menguji program akhir anda secara langsung, anda tidak disyorkan untuk membuat helo dan baru program dunia pertama untuk mengujinya dengan jayanya Kemudian nyahpepijat kod anda sendiri.
  • Lokasi dan kandungan folder tidak penting, tetapi sebaiknya pastikan ia ringkas
cd ~/桌面
mkdir testvs
cd testvs
touch main.cpp
gedit main.cpp
Salin selepas log masuk

Kod utama.cpp ialah:

#include <stdio.h>
 
int main()
{
    int a = 1;
    printf("hello world\n");
    getchar();
    return 0;
}</stdio.h>
Salin selepas log masuk

(3) Susun dan dapatkan fail boleh laku

g main.cpp -o main -g
Nota:

  • Tambah pilihan -g , jika tidak, anda tidak akan dapat menggunakan Penyahpepijatan gdb
  • Selepas dijalankan, terdapat dua fail main.cpp dan utama dalam folder testvs

(4 ) Mulakan gdbserver

(4.1) Mula-mula lihat alamat ip sistem ubuntu anda:

hostname -I
Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode
Anda boleh mendapatkan alamat ip tempatan sebagai 192.168.199.131

(4.2) Mulakan gdbserver (beri perhatian kepada menukar alamat ip dan direktori fail ujian)

gdbserver 192.168.199.131:2000 ~/桌面/testvs/main
Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

3. Tetapan VScode Hos

(1) Mula-mula pasang pemalam berikut dalam VScode :

  • C /C
  • C/C Extension Pack
  • Remote - SSH
  • Remote Development

(2) ssh remote Sambung ke

di penjuru kiri sebelah bawah "Pengurusan" -> "Panel Kawalan", kemudian cari pilihan "Remote-SSH: Connect to Host..." -> Tambah Hos SSH Baharu.. .
Masukkan alamat IP sistem ubuntu, dan antara muka baharu akan muncul

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode
Masukkan kata laluan sistem ubuntu dalam kotak merah Jika alamat IP hijau dipaparkan di sudut kiri bawah, sambungan berjaya, seperti yang ditunjukkan di bawah.

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

(3) Buka fail ujian

Buka folder-> direktori , klik butang "OK"

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode
dan pilih sambungan C/C, "Pasang dalam SSH:XXX". Perkara yang sama berlaku untuk Pek Sambungan C/C
Kemudian mulakan semula Vscode dan gdbserver dalam Ubuntu (ia mesti dimulakan semula, jika tidak ralat akan dilaporkan dalam langkah seterusnya) dan laksanakan semula proses sambungan jauh di atas.

(4) Tetapkan fail konfigurasi

(4.1) Konfigurasi tasks.json

daripada Pilih Terminal>Konfigurasikan Tugasan Binaan Lalai dalam bar menu, pilih C/C dalam bar lungsur: g bina fail aktif Kemudian jana fail tasks.json dan gantikan kandungan dengan:

{
    // 有关 tasks.json 格式的文档,请参见
     // https://go.microsoft.com/fwlink/?LinkId=733558
     "version": "2.0.0",
     "tasks": [
     {
     "type": "shell",
     "label": "g++ build active file",
     "command": "/usr/bin/g++",
     "args": [
     "-std=c++11",
     "-g",
     "${file}",
     "-o",
     "${fileDirname}/${fileBasenameNoExtension}"
     ],
     "options": {
     "cwd": "/usr/bin"
     },
     "problemMatcher": [
     "$gcc"
     ],
     "group": {
     "kind": "build",
     "isDefault": true
     }
     },
     { //删除二进制文件
     "type": "shell",
     "label": "delete output file",
     "command": "rm",
     "args": [
     "${fileDirname}/${fileBasenameNoExtension}"
     ],
     "presentation": {
     "reveal": "silent", //删除过程不切换终端(专注程序输出)
     }
     }
     ]
    }
Salin selepas log masuk

. (4.2 )Konfigurasikan launch.json

Pilih Nyahpepijat>Tambah Konfigurasi dalam bar menu, pilih C (GDB/LLDB), pilih g bina dan nyahpepijat fail aktif dalam bar lungsur . Hasilkan launch.json dan tukar kandungan Untuk:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: 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}/${fileBasenameNoExtension}",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
    {
     "description": "为 gdb 启用整齐打印",
     "text": "-enable-pretty-printing",
     "ignoreFailures": true
    }
    ],
    "preLaunchTask": "g++ build active file",
    "postDebugTask": "delete output file",
    "miDebuggerPath": "/usr/bin/gdb"
    }
    ]
   }
Salin selepas log masuk

4 Jalankan dan nyahpepijat

Nyahpepijat dan jalankan di bawah main.cpp

Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode

Untuk pengetahuan lanjut tentang VSCode, sila lawati:

tutorial asas vscode!

Atas ialah kandungan terperinci Penjelasan konfigurasi terperinci: penyahpepijatan jauh c dalam vscode. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:cnblogs.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan