Jadual Kandungan
Struktur Asas Launch.json
Tetapan utama dijelaskan
: menunjuk kepada yang boleh dilaksanakan" > "program" : menunjuk kepada yang boleh dilaksanakan
dan "type": "cppdbg"" > "MIMode": "gdb" dan "type": "cppdbg"
" > "externalConsole": true
Pilihan tetapi membantu: Perintah Persediaan
Nota akhir
Rumah alat pembangunan VSCode Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?

Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?

Aug 04, 2025 am 03:46 AM
c++ gdb

Untuk debug aplikasi C menggunakan GDB dalam Kod Visual Studio, konfigurasikan fail launch.json dengan betul; Tetapan utama termasuk menentukan laluan yang boleh dilaksanakan dengan "program", menetapkan "mimode" kepada "gdb" dan "jenis" kepada "cppdbg", menggunakan "externalconsole" berdasarkan keutamaan terminal anda, dan secara pilihan termasuk "setupkommands" untuk pengalaman debugging yang dipertingkatkan seperti membolehkan cetak cetak dan menetapkan rasa cetak dan penetapan yang cantik. Pastikan program anda disusun dengan bendera -g dan bahawa sambungan Microsoft C/C dipasang untuk sokongan CPPDBG.

Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?

Apabila anda cuba debug aplikasi C menggunakan GDB pada Linux dalam kod Visual Studio, kunci mempunyai fail launch.json yang dikonfigurasi dengan betul. Persediaan perlu memberitahu kod VS bagaimana untuk memulakan GDB, program apa yang hendak dijalankan, dan bagaimana untuk melampirkannya ke debugger.

Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?

Struktur Asas Launch.json

Konfigurasi yang minimum tetapi berfungsi biasanya kelihatan seperti ini:

Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?
 {
  "Versi": "0.2.0",
  "Konfigurasi": [
    {
      "Nama": "C Debug dengan GDB",
      "Jenis": "CPPDBG",
      "Permintaan": "Pelancaran",
      "Program": "$ {WorkspaceFolder}/your_program_name",
      "args": [],
      "Stopatentry": palsu,
      "cwd": "$ {filedir}",
      "Persekitaran": [],
      "ExternalConsole": Benar,
      "Mimode": "GDB",
      "SetupCommands": [
        {
          "Penerangan": "Dayakan Pretty-Printing untuk GDB",
          "Teks": "-enable-press-printing",
          "AbaikanFailures": Benar
        }
      ]
    }
  ]
}

Mari kita memecahkan bahagian -bahagian penting dan jelaskan apa yang mereka lakukan dan mengapa mereka penting.


Tetapan utama dijelaskan

"program" : menunjuk kepada yang boleh dilaksanakan

Barisan ini memberitahu kod vs yang menyusun binari untuk debug.
Pastikan program anda disusun dengan bendera -g (misalnya, g -g main.cpp -o myapp ) supaya simbol debug dimasukkan.

Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?

Contoh: Sekiranya anda boleh dilaksanakan dalam folder root dan menamakan myapp , set "program": "${workspaceFolder}/myapp"

Anda juga boleh menggunakan pembolehubah seperti ${workspaceFolder} atau ${fileDir} untuk menjadikannya lebih fleksibel dalam persediaan yang berbeza.


"MIMode": "gdb" dan "type": "cppdbg"

Kedua -dua tetapan ini menyatakan bahawa anda menggunakan GDB sebagai backend debugger dan Microsoft Extension ( cppdbg ) untuk bersambung dengannya.

Pastikan sambungan C/C oleh Microsoft dipasang - jika tidak, cppdbg tidak akan berfungsi.

Juga, jika anda menggunakan LLDB dan bukannya GDB, nilai -nilai ini akan berubah. Tetapi untuk persediaan Linux standard dengan GDB, tetap dengan lalai yang ditunjukkan di atas.


"externalConsole": true

Menetapkan ini ke true membuka tetingkap terminal baru apabila debugging bermula. Ini berguna kerana kadang -kadang input/output tidak berkelakuan dengan betul di dalam konsol debug dalaman.

Walau bagaimanapun, jika anda mahu semuanya dalam satu tetingkap dan tidak memerlukan input interaktif, anda boleh dengan selamat menetapkannya kepada false .

Petua: Pada sesetengah sistem, terutamanya WSL atau persediaan jauh, menetapkan ini kepada false mengelakkan isu -isu dengan terminal luaran yang tidak dilancarkan dengan betul.


Pilihan tetapi membantu: Perintah Persediaan

Bahagian "setupCommands" membolehkan anda menghantar arahan ke GDB sebaik sahaja ia bermula.

Yang biasa digunakan termasuk:

  • Membolehkan percetakan cantik untuk bekas STL
  • Menetapkan pilihan debugger tertentu

Berikut adalah versi yang diperluaskan yang merangkumi beberapa arahan yang lebih berguna:

 "SetupCommands": [
  {
    "Penerangan": "Dayakan Pretty-Printing untuk GDB",
    "Teks": "-enable-press-printing",
    "AbaikanFailures": Benar
  },
  {
    "Penerangan": "Tetapkan rasa disassembly ke Intel",
    "Teks": "Tetapkan Intel Disassembly-Flavor",
    "AbaikanFailures": Benar
  }
]

Ini membantu meningkatkan kebolehbacaan semasa debugging peringkat rendah.


Nota akhir

Sebaik sahaja launch.json anda.json disediakan, pastikan kod anda disusun dengan simbol debug dan anda mempunyai titik putus. Anda sepatutnya dapat memukul F5 dan melangkah melalui kod anda.

Sudah tentu, terdapat banyak tetapan pilihan yang boleh anda tambahkan-seperti pembolehubah persekitaran, direktori kerja tersuai, atau arahan pasca pelancaran-tetapi untuk kebanyakan persediaan asas, di atas lebih daripada cukup.

Dan itu sahaja - tidak ada yang terlalu mewah, tetapi mudah untuk mendapatkan salah jika satu jalan atau bendera dimatikan.

Atas ialah kandungan terperinci Apakah tetapan pelancaran.json yang betul untuk menyahpepijat aplikasi C dengan GDB di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
4 minggu yang lalu By 百草
Petua untuk menulis komen php
4 minggu yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1510
276
Apa itu SENDIRI (membuktikan duit syiling)? Bagaimana untuk beroperasi? Membuktikan ekonomi dan ramalan harga token Apa itu SENDIRI (membuktikan duit syiling)? Bagaimana untuk beroperasi? Membuktikan ekonomi dan ramalan harga token Aug 06, 2025 pm 06:42 PM

Direktori apa yang ringkas (membuktikan) yang mencipta ringkas (membuktikan)? Modal teroka mana yang menyokong ringkas (membuktikan)? Betapa ringkasnya (membuktikan) berfungsi SP1ZKVM dan penguasaan rangkaian Opsuccon Teknologi Pengesahan rantaian rantaian membuktikan token token token token peruntukan token utiliti yang berpotensi pemegang token membuktikan ramalan harga token membuktikan aktiviti perdagangan pra-pasaran pra-pasaran ramalan masyarakat membuktikan harga token mengapa memilih yang ringkas? Succ

Ramalan Harga Ringkas (Buktikan Koin): 2025, 2026, 2027-2030 Ramalan Harga Ringkas (Buktikan Koin): 2025, 2026, 2027-2030 Aug 11, 2025 am 10:12 AM

Direktori Apa yang ringkas (membuktikan) Modal teroka yang menyokong ringkas (membuktikan)? Betapa ringkasnya (membuktikan) Prinsip Kerja SP1ZKVM dan Rangkaian Prover Teknologi Opsuccon Teknologi Pengesahan Cross-Chain Membuktikan Token Ekonomi Token Butiran 2025, 2026, 2027-2030 Ramalan Ramalan Ramalan (membuktikan)

C Padamkan dari vektor semasa melangkah C Padamkan dari vektor semasa melangkah Aug 05, 2025 am 09:16 AM

Jika ia meleleh apabila memadam elemen, anda mesti mengelakkan menggunakan Iterator yang gagal. ① Cara yang betul adalah menggunakannya = vec.erase (IT), dan gunakan iterator yang sah yang dikembalikan dengan memadam untuk terus melintasi; ② Idiom yang disyorkan untuk penghapusan batch: vec.erase (std :: rove_if (vec.begin (), vec.end (), syarat), vec.end ()), yang selamat dan cekap; ③ Anda boleh menggunakan iterator terbalik untuk memadam dari belakang ke depan, logiknya jelas, tetapi anda perlu memberi perhatian kepada arah keadaan. Kesimpulan: Sentiasa mengemas kini iterator dengan nilai pulangan memadam, melarang operasi pada Iterator yang gagal, jika tidak, tingkah laku yang tidak ditentukan akan dihasilkan.

Contoh kata kunci auto c Contoh kata kunci auto c Aug 05, 2025 am 08:58 AM

Theautokeywordinc deducesthetypeofavariableFromitsinitializer, MakingCodeCleanerAndmoremaintainable.1.itreduceRosities, terutamanyaWithcomplextypesikeiterators.2.itenhancesmaintabilitybyautomaticallyAdAdAdAdAttottoTypeChanges.3.Isisnessaryaryaryypechanges

C Contoh penghantaran tag C Contoh penghantaran tag Aug 05, 2025 am 05:30 AM

Tagdispatching menggunakan tag jenis untuk memilih kelebihan fungsi optimum semasa tempoh penyusunan untuk mencapai polimorfisme yang cekap. 1. Gunakan std :: iterator_traits untuk mendapatkan tag kategori iterator; 2. Tentukan pelbagai fungsi kelebihan DO_Advance, dan proses random_access_iterator_tag, bidrectional_iterator_tag dan input_iterator_tag masing -masing; 3. Fungsi utama My_Advance memanggil versi yang sepadan berdasarkan jenis tag yang diperolehi untuk memastikan tidak ada overhead runtime semasa keputusan masa kompilasi; 4. Teknologi ini diterima pakai oleh perpustakaan standard seperti STD :: Advance, dan menyokong penyesuaian lanjutan.

Cara mendapatkan saiz fail dalam c Cara mendapatkan saiz fail dalam c Aug 11, 2025 pm 12:34 PM

Gunakan kaedah Seekg dan Tellg std :: ifstream untuk mendapatkan saiz fail di seluruh platform. Dengan membuka fail binari dan meletakkannya hingga akhir, gunakan Tellg () untuk mengembalikan bilangan bait; 2. Adalah disyorkan untuk menggunakan std :: filesystem :: file_size untuk c 17 dan ke atas. Kod ini ringkas dan kesilapan dikendalikan melalui pengecualian. Piawaian C 17 mesti diaktifkan; 3. Pada sistem POSIX, fungsi stat () boleh digunakan untuk mendapatkan saiz fail dengan cekap, yang sesuai untuk senario sensitif prestasi. Kaedah yang sesuai harus dipilih berdasarkan pengkompil dan platform, dan sistem fail std :: harus digunakan terlebih dahulu (jika ada), jika tidak, gunakan IFStream untuk memastikan keserasian, atau gunakan ST pada sistem Unix

Apa yang perlu saya lakukan jika aplikasi tidak boleh bermula secara normal (0xc0000906)? Lihat penyelesaian di sini Apa yang perlu saya lakukan jika aplikasi tidak boleh bermula secara normal (0xc0000906)? Lihat penyelesaian di sini Aug 13, 2025 pm 06:42 PM

Apabila membuka perisian atau permainan, segera tiba -tiba muncul bahawa "aplikasi tidak boleh bermula secara normal (0xc0000906)" muncul, dan banyak pengguna akan dikelirukan dan tidak tahu di mana hendak bermula. Malah, kebanyakan kesilapan ini disebabkan oleh rasuah fail sistem atau perpustakaan runtime yang hilang. Jangan tergesa -gesa untuk memasang semula sistem. Artikel ini memberikan anda beberapa penyelesaian yang mudah dan berkesan untuk membantu anda memulihkan program dengan cepat. 1. Apakah ralat 0xc0000906? Kod Ralat 0xC0000906 adalah pengecualian permulaan yang biasa dalam sistem Windows, yang biasanya bermaksud bahawa program tidak dapat memuatkan komponen sistem yang diperlukan atau persekitaran yang berjalan ketika berjalan. Masalah ini sering berlaku apabila menjalankan perisian atau permainan besar. Sebab utama mungkin termasuk: Perpustakaan Runtime yang diperlukan tidak dipasang atau rosak. Pakej pemasangan perisian tidak berkesudahan

Contoh senarai yang dipautkan Contoh senarai yang dipautkan Aug 05, 2025 am 06:23 AM

Contoh C Linked ini melaksanakan Operasi Sisip, Traversal dan Padam. 1. Gunakan InsertBeginning untuk memasukkan nod di kepala; 2. Gunakan sisipan untuk memasukkan nod dalam ekor; 3. Gunakan DeletEnode untuk memadam nod dengan nilai dan mengembalikan hasil Boolean; 4. Gunakan kaedah paparan untuk melintasi dan mencetak senarai yang dipautkan; 5. Percuma semua memori nod dalam pemusnah untuk mengelakkan kebocoran; Output program akhir mengesahkan ketepatan operasi ini, menunjukkan sepenuhnya kaedah pengurusan asas struktur data dinamik.

See all articles