GDBFrontend adalah debugger gui yang mudah, fleksibel, dan dapat diperluas. Cobalah secara online!
Anda dapat menginstal GDBFrontend dengan pip
.
sudo python3 -m pip install gdbfrontend
jika sudah terinstal dan Anda mengupgrade
sudo python3 -m pip install --upgrade gdbfrontend
atau jika Anda ingin menginstal snapshot GIT tertentu:
sudo python3 setup.py install
dan kamu bisa lari
gdbfrontend
Anda dapat mengunduh sumber terbaru dan menjalankannya.
Anda dapat menjalankan gdb-frontend dengan perintah berikut:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
dan Anda dapat membukanya dengan:
http://127.0.0.1:5550/
Anda dapat membuka shell GDB dengan perintah:
tmux a -t gdb-frontend
Anda dapat menginstal paket Arch Linux untuk distribusi berbasis Arch. (Paket AUR)
yay -S gdb-frontend-bin
dan Anda dapat menjalankannya:
gdbfrontend
Paket flatpak adalah TODO.
Ikuti tutorial ini untuk mempelajari cara men-debug aplikasi C/C++ Docker dengan GDBFrontend.
Ikuti tutorial singkat ini untuk men-debug perangkat tertanam dengan GDBFrontend.
Ikuti tutorial singkat ini untuk men-debug ekstensi C Python asli dengan GDBFrontend.
GDBFrontend memiliki API yang kuat dan dapat diperluas. Ikuti tutorial singkat ini untuk mempelajari pengembangan plugin GDBFrontend.
Ikuti tutorial singkat ini untuk mendapatkan ide integrasi untuk persyaratan pengembangan/debugging khusus.
Ikuti tutorial ini untuk men-debug STM32 dengan OpenOCD dan GDBFrontend.
GDBFrontend memiliki evaluator ekspresi yang dapat Anda gunakan beberapa kali secara bersamaan.
Klik kanan pada breakpoint untuk mengatur kondisinya.
Ekspresi semua variabel, anggota, dan item terhubung dalam VariablesExplorer GDBFrontend.
Anda dapat melihat, memfilter, atau mengelola proses dengan Manajer Proses.
GDBFrontend memiliki serangkaian fitur untuk kolaborasi yang disebut sebagai "Kolaborasi yang Disempurnakan".
Pengundian kolaborasi tersedia saat Anda mengaktifkan Kolaborasi yang Disempurnakan. Klik untuk Menggambar atau gunakan pintasan Ctrl + Shift + X untuk menggambar dan Ctrl + Shift + C untuk menghapus semua gambar.
Dengan Kolaborasi yang Ditingkatkan, semua klien debugger disinkronkan pada tampilan sumber.
GDBFrontend sangat dapat diperluas dan memiliki API yang kuat. Beberapa contoh ekstensibilitas GDBFrontend.
./gdbfrontend
$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: Shows this help message.
--version, -v: Shows version.
--gdb-args= " ARGS " , -G " ARGS " : Specifies GDB command line arguments. (Optional)
--gdb-executable=PATH, -g PATH: Specifies GDB executable path (Default is " gdb " command on PATH environment variable.)
--tmux-executable=PATH, -tmux PATH: Specifies Tmux executable path (Default is " tmux " command on PATH environment variable.)
--terminal-id=NAME, -t NAME: Specifies tmux terminal identifier name (Default is " gdb-frontend " .)
--credentials=USER:PASS, -c USER:PASS: Specifies username and password for accessing to debugger.
--host=IP, -H IP: Specifies current host address that you can access via for HTTP and WS servers.
--listen=IP, -l IP: Specifies listen address for HTTP and WS servers.
--port=PORT, -p PORT: Specifies HTTP port. (0 for random port.)
--url-base=PATH, -u PATH: Specifies URL base path. (Default: /)
--readonly, -r: Makes code editor readonly. (Notice: This option is not related to security.)
--workdir, -w: Specifies working directory.
--plugin-dir, -P: Specifies plugins directory.
--dontopenuionstartup, -D: Avoids opening UI just after startup.
--verbose, -V: Enables verbose output.
--help
, -h
Menampilkan teks bantuan.
--version
, -v
Menunjukkan versi.
--gdb-args="ARGS", -G "ARGS"
Menentukan argumen baris perintah GDB. (Opsional)
--gdb-executable=PATH
, -g PATH
Anda dapat menentukan jalur eksekusi GDB seperti gdbfrontend --gdb-executable=/path/to/gdb
. (Opsional)
--tmux-executable=PATH
, -tmux PATH
Anda dapat menentukan jalur eksekusi Tmux seperti gdbfrontend --tmux-executable=/path/to/tmux
. (Opsional)
--terminal-id=PATH
, -t PATH
Anda dapat menentukan id terminal Tmux seperti gdbfrontend --terminal-id=terminal-name
. (Bawaan: gdb-frontend
)
--credentials=USER:PASS
, -c USER:PASS
Menentukan nama pengguna dan kata sandi untuk mengakses debugger.
--host=IP
, -H IP
Menentukan alamat host saat ini yang dapat Anda akses melalui server HTTP dan WS.
--listen=IP
, -l IP
Menentukan alamat mendengarkan untuk server HTTP dan WS.
--port=PORT
, -p PORT
Menentukan port HTTP. (0 untuk port acak.)
--url-base=PATH
, -u PATH
Menentukan jalur dasar URL. (Bawaan: /)
--readonly, -r
Menjadikan editor kode hanya dapat dibaca. (Pemberitahuan: Opsi ini tidak terkait dengan keamanan.)
--workdir, -w
Menentukan direktori kerja.
--plugin-dir, -P
Menentukan direktori plugin.
--dontopenuionstartup
, -D
Hindari membuka UI setelah startup.
--verbose
, -V
Mengaktifkan keluaran verbose.
Perintah GDB GDBFrontend dimulai dengan gf-
.
gf-refresh
Menyegarkan semua klien browser.
gf-theme [theme-name]
Beralih ke tema yang diinginkan. Misalnya: gf-theme light
, gf-theme red
atau gf-theme default
untuk tema default.
gf-list-plugins
Mencantumkan semua plugin GDBFrontend di direktori plugin.
gf-load-plugin [plugin-name]
Memuat plugin GDBFrontend.
gf-unload-plugin [plugin-name]
Membongkar plugin GDBFrontend.
Tombol pintas saat ini tercantum di bawah.
Tindakan | Tombol pintas | Konteks |
---|---|---|
Umum: Buka file sumber | Ctrl + O | Frontend GDB |
Umum: ExpressionEvaluator Baru | Ctrl + R | Frontend GDB |
Umum: ExpressionEvaluator baru di jendela asli | Ctrl + Shift + R | Frontend GDB |
Umum: Pencari sumber fuzzy | Ctrl + P | Frontend GDB |
Waktu berjalan: Jalankan | F5 | Frontend GDB |
Durasi: Lanjutkan | F6 | Frontend GDB |
Waktu Proses: Jeda/Interupsi | F7 | Frontend GDB |
Waktu Proses: Melangkah | F8 | Frontend GDB |
Waktu Proses: Masuk ke | F9 | Frontend GDB |
Runtime: Instruksi Langkah | F10 | Frontend GDB |
Durasi: Berhenti | F11 | Frontend GDB |
Kolaborasi yang Ditingkatkan: Beralih ke mode menggambar | Ctrl + Shift + X | GDBFrontend / Kolaborasi yang Ditingkatkan: Diaktifkan |
Kolaborasi yang Ditingkatkan: Hapus semua gambar | Ctrl + Shift + C | GDBFrontend / Kolaborasi yang Ditingkatkan: Diaktifkan |
GDBFrontend memiliki tema bawaan.
Untuk beralih antar tema gunakan perintah gf-theme [THEME]
pada shell GDB.
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red
Untuk beralih kembali ke tema default.
(gdb) gf-theme
Anda juga mungkin ingin melihat Tutorial Pengembangan Plugin.
Anda dapat mengakses API Python GDBFrontend melalui modul gdbfrontend
.
(gdb) python-interactive
> >> dir ( gdbfrontend )
Misalnya, Anda bisa mendapatkan semua soket klien seperti ini:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
atau Anda bisa mendapatkan semua plugin:
> >> gdbfrontend . plugin . getAll ()
[ 'hello' , 'theme_cyberpunk' , 'theme_dark' , 'theme_doki' , 'theme_green' , 'theme_light' , 'theme_red' , 'theme_sakura' , 'theme_sky' , 'theme_waifu' ]
Anda dapat menggunakan opsi --credentials=USER:PASS
untuk menambahkan otentikasi HTTP ke sesi debugger Anda.
GDBFrontend terutama dikembangkan dengan pengujian pada browser berbasis Chromium. Ini akan bekerja dengan baik dengan browser lain terutama dengan Firefox tetapi jika Anda menghadapi beberapa masalah pada browser lain, Anda dapat mengirimkan laporan bug.
Sebagian besar fungsi GDBFrontend aman untuk thread dan bekerja pada thread utama GDB. Jadi, jika Anda menjalankan sesuatu yang memblokir shell GDB, fungsi GDBFrontend harus menunggu hingga selesai.
Anda akan mendapatkan peringatan ini ketika fungsi GDBFrontend yang aman untuk thread perlu berfungsi dan Anda memblokir thread utama GDB.
(gdb) shell
$ ...
Saat Anda keluar dari shell, fungsi pemblokiran GDBFrontend akan terus berfungsi.
Catatan: Kadang-kadang Anda mungkin mendapatkan peringatan ini tanpa menjalankan apa pun di shell GDB, itu berarti sesuatu (dalam event-loop GDB) memakan waktu lama; dalam hal ini abaikan saja peringatan ini.
GDBFrontend mengirimkan SIGTERM ke subprosesnya, aplikasi Anda, dan subprosesnya. Jika aplikasi Anda melakukan forking proses baru dan menyetel PGID-nya, GDBFrontend mungkin tidak menutupnya. Dalam hal ini Anda harus mengirimkan SIGKILL ke proses Anda.
pkill -f gdb
Jika Anda menggunakan ExpressionEvaluator dengan variabel/anggota yang diperluas dengan kedalaman yang sangat panjang, kinerja pergerakan jendela gulir dan evaluator Anda mungkin terpengaruh buruk untuk visualisasi penunjuk. Dalam situasi ini, Anda dapat mematikan penunjuk sinyal dan slot untuk jendela evaluator tersebut.
Faktanya, gdb-frontend dapat berjalan di Windows tetapi ada beberapa masalah serius di versi Windows GDB yang menghindari penggunaan gdb-frontend di Windows. Tentu saja Anda dapat menggunakan gdb-frontend di WSL jika Anda menggunakan Windows 10.
Anda dapat menggunakan gdb-frontend di WSL (Subsistem Windows untuk Linux).
/proc/net/tcp
tidak berfungsi di WSL. (WSL 2 tidak mengalami masalah ini.) Sejak v0.2.0-beta, GDBFrontend beralih ke strategi pembuatan versi baru.
Dalam vX.YZ-STABILITY
:
X
adalah versi utama , perubahan jangka panjang dengan fitur dan penyempurnaan utama.Y
adalah versi utama yang menyertakan fitur dan penyempurnaan baru.Z
adalah rilis perbaikan bug dari versi utama.STABILITY
adalah tingkat kestabilan rilis. ( alpha
, beta
, rcN
, stable
) Dokumentasi masih TODO.
Dokumentasi API belum TODO.
Anda dapat membaca Tutorial Pengembangan Plugin.
Tema dikembangkan sebagai plugin.
Bergabunglah dengan komunitas Perselisihan.
Anda dapat berkontribusi dengan berkomitmen pada proyek atau mengembangkan plugin. Semua komitmen diterima.
Mata uang | Alamat |
---|---|
BTC | bc1qhvlc762kwuzewedl9a8z0duhs8449nwwc35e2 |
ETH/USDT/USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUTy |
Sebaiknya, mendonasikan USDT atau USDC dianjurkan, namun Anda dapat mendonasikan salah satu mata uang di atas. ?
Hak Cipta (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
Lisensi Publik Umum GNU v3 (GPL-3)
Anda dapat menyalin, mendistribusikan, dan memodifikasi perangkat lunak selama Anda melacak perubahan/tanggal dalam file sumber. Modifikasi atau perangkat lunak apa pun termasuk (melalui kompiler) kode berlisensi GPL juga harus tersedia di bawah GPL bersama dengan instruksi pembuatan & pemasangan.