Rumah  >  Artikel  >  alat pembangunan  >  Bagaimana untuk menyahpepijat gdb jauh dalam vscode? Penerangan terperinci kaedah

Bagaimana untuk menyahpepijat gdb jauh dalam vscode? Penerangan terperinci kaedah

青灯夜游
青灯夜游ke hadapan
2023-04-11 19:14:433145semak imbas

Bagaimana untuk nyahpepijat gdb jauh dalam vscode? Artikel berikut akan memperkenalkan kepada anda kaedah penyahpepijatan gdb jauh bagi vscode. Saya harap ia akan membantu anda!

Bagaimana untuk menyahpepijat gdb jauh dalam vscode? Penerangan terperinci kaedah

Baru-baru ini, dengan bantuan rakan sekerja saya, saya cuba menggunakan vscode untuk penyahpepijatan gdb Selepas menggunakannya, rasanya "sangat bagus".

Tanpa melengahkan masa lagi, perkara yang akan dicapai oleh artikel ini ialah: penyahpepijatan jauh kod C++ pada pelayan Linux dan peranti dibenamkan lengan pada bahagian tingkap, dan menyusun konfigurasi dan penggunaan penyahpepijatan gdb.

1. Sambungan jauh

Mula-mula anda perlu mencapai sambungan jauh ke pelayan, cari "remote-ssh" dalam perpustakaan pemalam, klik dua kali untuk memuat turun dan memasang (saya dalam gambar di bawah Sudah dipasang), selepas pemasangan, pengurus sumber jauh akan muncul di bar sisi. [Pembelajaran yang disyorkan: tutorial vskod, Pengajaran pengaturcaraan]

Klik tanda + dan masukkan ssh dalam arahan pop timbul tetingkap untuk arahan log masuk, ikut arahan, masukkan kata laluan dan sahkan, sambungan akan berjaya

2. Konfigurasikan persekitaran GDB

Buat pada pelayan kod C++ Di sini kita mengambil kod dalam "C++ untuk Linux untuk mendapatkan nama pengguna sistem" sebagai contoh

#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;
}

Kaedah penyusunan adalah seperti berikut Pastikan anda menambah perintah -g , jika tidak, adalah mustahil untuk menyahpepijat dengan gdb

g++ -g test.cpp -o test

Kemudian klik File-Open Folder dan cari laluan kod yang dibuat pengesahan, anda boleh melihat fail kod dalam pengurus sumber di sebelah kiri.

Anda perlu memasang sambungan c++ untuk larian pertama Dalam halaman sambungan, pasang C/C++

Juga cari GDB Debug dan pasang <.>

Selepas pemasangan, klik butang "Run and Debug", "Create launch.json",

Pilih Item C++ (GDB /LLDB), menjana fail launch.json secara automatik, kandungannya adalah seperti berikut

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

{
    // 使用 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
                }
            ]
        }
    ]
}
Konfigurasi persekitaran kini lengkap

3 kaedah penyahpepijatan GDB

Klik terus ke sebelah kiri nombor baris dalam kod sumber untuk menambah titik putus, klik "Jalankan dan Nyahpepijat" --( gdb) bermula, seperti berikut

untuk memasuki halaman nyahpepijat

Anda boleh melihat nilai pembolehubah secara langsung dalam kawasan pembolehubah, Lengkapkan tujuan penyahpepijatan.

Kekunci penyahpepijatan yang biasa digunakan adalah seperti berikut

F5 Mulakan penyahpepijatan

F10 Langkau satu langkah

F11 Penyahpepijatan satu langkah

shift + F11 Langkah keluar tunggal

ctrl + shift + F5 Mulakan semula penyahpepijatan

shift + F5 Hentikan penyahpepijatan

Ringkasan masalah

Jika anda pernah menyambung ke peranti tertentu sebelum ini, dan penggantian peranti yang berikutnya mempunyai IP yang sama, atau peranti telah dipasang semula tetapi IP tidak berubah, ralat akan dilaporkan semasa menyambung semula sebabnya ialah hos menyenaraikan IP pelayan sebagai known_host

Kami mencari pengubahsuaian, memadamkan IP dan kemudian menyambung semula

Untuk pengetahuan lanjut tentang VSCode, sila Lawati:

tutorial asas vscode!

Atas ialah kandungan terperinci Bagaimana untuk menyahpepijat gdb jauh dalam vscode? Penerangan terperinci kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam