
☕ GDBFrontend एक आसान, लचीला और विस्तार योग्य GUI डीबगर है।

GDBFrontend एक आसान, लचीला और विस्तार योग्य GUI डीबगर है।

आप GDBFrontend को pip के साथ इंस्टॉल कर सकते हैं।
sudo python3 -m pip install gdbfrontend
यदि यह पहले से इंस्टॉल है और आप अपग्रेड कर रहे हैं
sudo python3 -m pip install --upgrade gdbfrontend
या यदि आप विशिष्ट GIT स्नैपशॉट इंस्टॉल करना चाहते हैं:
sudo python3 setup.py install
और आप चला सकते हैं
gdbfrontend
आप नवीनतम स्रोत डाउनलोड करके इसे चला सकते हैं।
आप gdb-frontend को निम्नलिखित कमांड से चला सकते हैं:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
और आप इसे इस प्रकार खोल सकते हैं:
http://127.0.0.1:5550/
आप GDB शेल को इस कमांड से खोल सकते हैं:
tmux a -t gdb-frontend
आप Arch-आधारित वितरणों के लिए Arch Linux पैकेज इंस्टॉल कर सकते हैं। (AUR पैकेज)
yay -S gdb-frontend-bin
और आप इसे चला सकते हैं:
gdbfrontend
Flatpak पैकेज एक TODO है।
इस ट्यूटोरियल का पालन करें ताकि डॉकरीकृत C/C++ ऐप्स को GDBFrontend के साथ डीबग करना सीख सकें।
इस त्वरित ट्यूटोरियल का पालन करें एम्बेडेड उपकरणों को GDBFrontend के साथ डीबग करने के लिए।
इस त्वरित ट्यूटोरियल का पालन करें नेटिव C Python एक्सटेंशन को GDBFrontend के साथ डीबग करने के लिए।
GDBFrontend में शक्तिशाली और विस्तार योग्य APIs हैं। GDBFrontend प्लगइन्स विकसित करने के लिए इस त्वरित ट्यूटोरियल का पालन करें।
विशेष विकास/डीबगिंग आवश्यकताओं के लिए एकीकरण विचारों के लिए इस त्वरित ट्यूटोरियल का पालन करें।
OpenOCD और GDBFrontend के साथ STM32 को डीबग करने के लिए इस ट्यूटोरियल का पालन करें।
GDBFrontend में एक एक्सप्रेशन इवैल्यूएटर है जिसका उपयोग आप एक ही समय में कई बार कर सकते हैं।



ब्रेकपॉइंट पर राइट-क्लिक करें ताकि उसकी शर्त सेट कर सकें।


GDBFrontend के VariablesExplorer में सभी वेरिएबल्स, सदस्यों और आइटम्स के एक्सप्रेशन कनेक्टेड होते हैं।

आप प्रक्रिया प्रबंधक के साथ प्रक्रियाओं को देख, फ़िल्टर या प्रबंधित कर सकते हैं।


GDBFrontend में सहयोग के लिए कुछ विशेषताएं हैं जिन्हें "Enhanced Collabration" नाम दिया गया है।

जब आप Enhanced Collabration सक्षम करते हैं तो सहयोग ड्रा उपलब्ध होता है। ड्रा करने के लिए Ctrl + Shift + X शॉर्टकट और सभी ड्रॉइंग साफ़ करने के लिए Ctrl + Shift + C का उपयोग करें।

Enhanced Collabration के साथ सभी डीबगर क्लाइंट स्रोत दृश्य में सिंक्रनाइज़ होते हैं।

GDBFrontend बहुत विस्तार योग्य है और इसमें शक्तिशाली APIs हैं। 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सहायता पाठ दिखाता है।
--version, -vसंस्करण दिखाता है।
--gdb-args="ARGS", -G "ARGS"GDB कमांड लाइन तर्क निर्दिष्ट करता है। (वैकल्पिक)
--gdb-executable=PATH, -g PATHआप GDB निष्पादन योग्य पथ निर्दिष्ट कर सकते हैं जैसे gdbfrontend --gdb-executable=/path/to/gdb। (वैकल्पिक)
--tmux-executable=PATH, -tmux PATHआप Tmux निष्पादन योग्य पथ निर्दिष्ट कर सकते हैं जैसे gdbfrontend --tmux-executable=/path/to/tmux। (वैकल्पिक)
--terminal-id=PATH, -t PATHआप Tmux टर्मिनल आईडी निर्दिष्ट कर सकते हैं जैसे gdbfrontend --terminal-id=terminal-name। (डिफ़ॉल्ट: gdb-frontend)
--credentials=USER:PASS, -c USER:PASSडीबगर तक पहुँचने के लिए उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करता है।
--host=IP, -H IPवर्तमान होस्ट पता निर्दिष्ट करता है जिसे आप HTTP और WS सर्वरों के माध्यम से एक्सेस कर सकते हैं।
--listen=IP, -l IPHTTP और WS सर्वरों के लिए सुनने का पता निर्दिष्ट करता है।
--port=PORT, -p PORTHTTP पोर्ट निर्दिष्ट करता है। (0 का अर्थ रैंडम पोर्ट)
--url-base=PATH, -u PATHURL आधार पथ निर्दिष्ट करता है। (डिफ़ॉल्ट: /)
--readonly, -rकोड एडिटर को केवल-पढ़ने योग्य बनाता है। (नोट: यह विकल्प सुरक्षा से संबंधित नहीं है।)
--workdir, -wकार्य निर्देशिका निर्दिष्ट करता है।
--plugin-dir, -Pप्लगइन्स निर्देशिका निर्दिष्ट करता है।
--dontopenuionstartup, -Dस्टार्टअप के तुरंत बाद UI खोलने से बचता है।
--verbose, -Vविस्तृत आउटपुट सक्षम करता है।
GDBFrontend के GDB कमांड gf- से शुरू होते हैं।
gf-refreshसभी ब्राउज़र क्लाइंट को रीफ्रेश करता है।
gf-theme [theme-name]वांछित थीम पर स्विच करें। उदाहरण: gf-theme light, gf-theme red या डिफ़ॉल्ट थीम के लिए gf-theme default।
gf-list-pluginsप्लगइन निर्देशिका में सभी GDBFrontend प्लगइन्स को सूचीबद्ध करता है।
gf-load-plugin [plugin-name]GDBFrontend प्लगइन लोड करता है।
gf-unload-plugin [plugin-name]GDBFrontend प्लगइन अनलोड करता है।
वर्तमान हॉटकी नीचे सूचीबद्ध हैं।
GDBFrontend में बिल्ट-इन थीम हैं।
थीम के बीच स्विच करने के लिए GDB शेल पर gf-theme [THEME] कमांड का उपयोग करें।
(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
डिफ़ॉल्ट थीम पर वापस जाने के लिए:
(gdb) gf-theme
साथ ही आप प्लगइन विकास ट्यूटोरियल देख सकते हैं।
आप gdbfrontend मॉड्यूल के माध्यम से GDBFrontend के Python API तक पहुँच सकते हैं।
(gdb) python-interactive
>>> dir(gdbfrontend)
उदाहरण के लिए, आप सभी क्लाइंट सॉकेट इस प्रकार प्राप्त कर सकते हैं:
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}
या आप सभी प्लगइन्स प्राप्त कर सकते हैं:
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']
आप अपने डीबगर सत्र में HTTP प्रमाणीकरण जोड़ने के लिए --credentials=USER:PASS विकल्प का उपयोग कर सकते हैं।
GDBFrontend मुख्य रूप से Chromium-आधारित ब्राउज़रों पर परीक्षण के साथ विकसित किया जा रहा है। यह विशेष रूप से Firefox जैसे अन्य ब्राउज़रों पर ठीक से काम करेगा, लेकिन यदि आपको अन्य ब्राउज़रों पर कुछ समस्याएं आती हैं, तो आप एक बग-रिपोर्ट भेज सकते हैं।
अधिकांश GDBFrontend फ़ंक्शन थ्रेड-सुरक्षित हैं और GDB के मुख्य-थ्रेड पर काम करते हैं। इसलिए, यदि आप GDB शेल पर कुछ ऐसा चलाते हैं जो ब्लॉकिंग है, तो GDBFrontend फ़ंक्शन को इसके समाप्त होने तक प्रतीक्षा करनी होती है।
जब कोई थ्रेड-सुरक्षित GDBFrontend फ़ंक्शन काम करना चाहता है और आप GDB के मुख्य थ्रेड को ब्लॉक कर रहे हैं, तो आपको यह चेतावनी मिलेगी।
(gdb) shell
$ ...

जब आप शेल से बाहर निकलते हैं, तो ब्लॉकिंग GDBFrontend फ़ंक्शन काम करना जारी रखेंगे।
नोट: कभी-कभी आप GDB शेल में कुछ भी चलाए बिना यह चेतावनी प्राप्त कर सकते हैं, इसका मतलब है कि GDB के इवेंट-लूप में कुछ लंबा समय ले रहा है; इस मामले में इस चेतावनी को अनदेखा करें।
GDBFrontend अपनी उप-प्रक्रियाओं, आपके एप्लिकेशन और इसकी उप-प्रक्रियाओं को SIGTERM भेजता है। यदि आपका एप्लिकेशन नई प्रक्रियाएं फोर्क कर रहा है और उनके PGIDs सेट कर रहा है, तो GDBFrontend उन्हें बंद नहीं कर सकता है। इस स्थिति में, आपको अपनी प्रक्रियाओं को SIGKILL भेजना चाहिए।
pkill -f gdb
यदि आप बहुत लंबी गहराई वाले विस्तारित वेरिएबल्स/सदस्यों के साथ ExpressionEvaluator का उपयोग कर रहे हैं, तो पॉइंटर विज़ुअलाइज़ेशन के लिए आपका स्क्रॉल और इवैल्यूएटर विंडो मूव प्रदर्शन खराब हो सकता है। इस स्थिति में, आप उस इवैल्यूएटर विंडो के लिए सिग्नल और स्लॉट पॉइंटिंग बंद कर सकते हैं।

वास्तव में, gdb-frontend विंडोज पर चलने में सक्षम है, लेकिन GDB के विंडोज संस्करण में कुछ गंभीर समस्याएं हैं जो विंडोज पर gdb-frontend के उपयोग को रोकती हैं। बेशक यदि आप विंडोज 10 का उपयोग कर रहे हैं तो आप WSL पर gdb-frontend का उपयोग कर सकते हैं।
आप WSL (विंडोज सबसिस्टम फॉर लिनक्स) पर gdb-frontend का उपयोग कर सकते हैं।
/proc/net/tcp इंटरफ़ेस WSL पर काम नहीं करता है। (WSL 2 में यह समस्या नहीं है।)v0.2.0-beta से, GDBFrontend ने एक नई संस्करणकरण रणनीति अपनाई।
vX.Y.Z-STABILITY में:
X प्रमुख संस्करण है, प्रमुख सुविधाओं और संवर्द्धन के साथ दीर्घकालिक परिवर्तन।Y मुख्य संस्करण है जिसमें नई सुविधाएं और संवर्द्धन शामिल हैं।Z मुख्य संस्करणों के बगफिक्स रिलीज़ हैं।STABILITY रिलीज़ की स्थिरता का स्तर है। (alpha, beta, rcN, stable)दस्तावेज़ीकरण अभी एक TODO है।
API दस्तावेज़ीकरण अभी एक TODO है।
आप प्लगइन विकास ट्यूटोरियल पढ़ सकते हैं।
थीम को प्लगइन के रूप में विकसित किया जाता है।
Discord समुदाय में शामिल हों।
आप प्रोजेक्ट में कमिट करके या एक प्लगइन विकसित करके योगदान कर सकते हैं। सभी कमिट का स्वागत है।
| मुद्रा | पता |
|---|---|
| BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
| ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
| XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
अधिमानतः, USDT या USDC दान करने की अनुशंसा की जाती है, लेकिन आप उपरोक्त किसी भी मुद्रा में दान कर सकते हैं। 🥳
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU General Public License v3 (GPL-3)
आप सॉफ़्टवेयर को कॉपी, वितरित और संशोधित कर सकते हैं जब तक आप स्रोत फ़ाइलों में परिवर्तन/तिथियों को ट्रैक करते हैं। GPL-लाइसेंस प्राप्त कोड के किसी भी संशोधन या सॉफ़्टवेयर (कंपाइलर के माध्यम से) को भी GPL के तहत बिल्ड और इंस्टॉल निर्देशों के साथ उपलब्ध कराया जाना चाहिए।
| क्रिया | हॉटकी | संदर्भ |
|---|
| सामान्य: स्रोत फ़ाइल खोलें | Ctrl + O | GDBFrontend |
| सामान्य: नया ExpressionEvaluator | Ctrl + R | GDBFrontend |
| सामान्य: नेटिव विंडो पर नया ExpressionEvaluator | Ctrl + Shift + R | GDBFrontend |
| सामान्य: फ़ज़ी स्रोत खोजक | Ctrl + P | GDBFrontend |
| रनटाइम: चलाएं | F5 | GDBFrontend |
| रनटाइम: जारी रखें | F6 | GDBFrontend |
| रनटाइम: रोकें/बाधित करें | F7 | GDBFrontend |
| रनटाइम: स्टेप ओवर | F8 | GDBFrontend |
| रनटाइम: स्टेप इन | F9 | GDBFrontend |
| रनटाइम: स्टेप इंस्ट्रक्शन | F10 | GDBFrontend |
| रनटाइम: रोकें | F11 | GDBFrontend |
| उन्नत सहयोग: ड्रॉइंग मोड टॉगल करें | Ctrl + Shift + X | GDBFrontend / उन्नत सहयोग: सक्षम |
| उन्नत सहयोग: सभी ड्रॉइंग साफ़ करें | Ctrl + Shift + C | GDBFrontend / उन्नत सहयोग: सक्षम |