Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk menggunakan gdb untuk menyahpepijat program C++?

Bagaimana untuk menggunakan gdb untuk menyahpepijat program C++?

WBOY
Lepaskan: 2024-06-02 09:29:57
asal
1153 orang telah melayarinya

gdb ialah alat untuk menyahpepijat program C++. Perintah asas termasuk: jalankan: mulakan pemecahan program: tetapkan titik putus seterusnya: laksanakan baris kod seterusnya langkah: laksanakan fungsi semasa cetakan langkah demi langkah: cetak nilai ungkapan bt: paparkan surih tindanan Ciri lanjutan termasuk titik putus bersyarat, titik pantau , dan skrip Python.

Bagaimana untuk menggunakan gdb untuk menyahpepijat program C++?

Cara menggunakan gdb untuk nyahpepijat program C++

Pengenalan

GDB (GNU Debugger) ialah alat berkuasa yang boleh digunakan untuk nyahpepijat program C++. Ia membolehkan pembangun melangkah melalui kod, memeriksa nilai pembolehubah dan melihat surih tindanan. Artikel ini menerangkan cara menggunakan gdb dalam C++.

Pasang GDB

Dalam kebanyakan pengedaran Linux, gdb datang prapasang. Jika anda belum memasangnya, anda boleh memasangnya menggunakan arahan berikut:

sudo apt install gdb
Salin selepas log masuk

Pada macOS, anda boleh memasang gdb menggunakan Homebrew:

brew install gdb
Salin selepas log masuk

Mulakan GDB

Untuk memulakan gdb, gunakan arahan berikut:

gdb
Salin selepas log masuk

Kemudian, anda Program yang akan dinyahpepijat perlu ditentukan. Anda boleh memuatkan atur cara C++ dengan menjalankan arahan berikut:

(gdb) file my_program.cpp
Salin selepas log masuk

Arahan GDB asas

Berikut ialah beberapa arahan asas gdb untuk menyahpepijat atur cara C++:

  • jalankan: Mulakan atur cara.
  • break: Tetapkan titik putus pada nombor baris yang ditentukan.
  • seterusnya: Laksanakan baris kod seterusnya.
  • langkah: Laksanakan fungsi semasa langkah demi langkah.
  • cetak: Cetak nilai ungkapan.
  • bt: Tunjukkan jejak tindanan.

Kes praktikal

Andaikan kita mempunyai program C++ yang dipanggil my_program.cpp yang mengandungi kod berikut: my_program.cpp 的 C++ 程序,其中包含以下代码:

#include <iostream>

using namespace std;

int main() {
  int a = 5;
  int b = 10;
  int c = a + b;

  cout << c << endl;

  return 0;
}
Salin selepas log masuk

要调试此程序,我们可以执行以下步骤:

  1. 使用 gdb 命令启动 gdb。
  2. 使用 file my_program.cpp 加载程序。
  3. 使用 run 命令运行程序。
  4. 使用 break 10 设置一个断点,在第 10 行处暂停程序(此处为 cout 语句)。
  5. 使用 next 命令逐步执行代码,直到到达断点。
  6. 使用 print 命令打印变量的值,例如 print aprint c
  7. 使用 bt 命令查看堆栈跟踪。
  8. 使用 continuerrreee
  9. Untuk nyahpepijat atur cara ini, kita boleh melakukan langkah berikut:

Gunakan perintah gdb untuk memulakan gdb. Gunakan file my_program.cpp untuk memuatkan atur cara.

Gunakan perintah run untuk menjalankan program.

    Gunakan break 10 untuk menetapkan titik putus untuk menjeda atur cara pada baris 10 (di sini pernyataan cout).
  • Gunakan perintah next untuk melangkah melalui kod sehingga anda mencapai titik putus.
  • Gunakan perintah print untuk mencetak nilai pembolehubah, seperti print a atau print c.
  • Gunakan perintah bt untuk melihat surih tindanan.
  • Gunakan perintah continue untuk meneruskan pelaksanaan program.
  • Ciri Terperinci

gdb juga menyediakan banyak ciri lanjutan, seperti:

Titik Putus Bersyarat: 🎜Cetus titik putus hanya apabila syarat tertentu dipenuhi. 🎜🎜🎜Titik pemerhatian: 🎜Sesuatu peristiwa dicetuskan apabila nilai pembolehubah berubah. 🎜🎜🎜Skrip Python: 🎜Membenarkan tugas penyahpepijatan automatik. 🎜🎜🎜🎜Kesimpulan🎜🎜🎜gdb ialah alat yang berkuasa untuk menyahpepijat program C++. Dengan menguasai arahan asas dan ciri lanjutan, pembangun boleh mencari dan membetulkan ralat dalam kod mereka dengan berkesan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan gdb untuk menyahpepijat program C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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