
☕ GDBFrontend هو مصحح أخطاء رسومي سهل ومرن وقابل للتوسيع.

GDBFrontend هو مصحح واجهة مستخدم رسومية سهل ومرن وقابل للتوسيع.

يمكنك تثبيت 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 shell باستخدام الأمر:
tmux a -t gdb-frontend
يمكنك تثبيت حزمة Arch Linux للتوزيعات المبنية على Arch. (AUR Package)
yay -S gdb-frontend-bin
ويمكنك تشغيله:
gdbfrontend
حزمة Flatpak هي TODO.
اتبع هذا البرنامج التعليمي لتعلم كيفية تصحيح تطبيقات C/C++ المحوَّمة باستخدام GDBFrontend.
اتبع هذا البرنامج التعليمي السريع لتصحيح الأجهزة المضمنة باستخدام GDBFrontend.
اتبع هذا البرنامج التعليمي السريع لتصحيح امتدادات C الأصلية لـ Python باستخدام GDBFrontend.
GDBFrontend لديه واجهات برمجة تطبيقات قوية وقابلة للتوسيع. اتبع هذا البرنامج التعليمي السريع لتعلم تطوير إضافات GDBFrontend.
اتبع هذا البرنامج التعليمي السريع للحصول على أفكار تكامل لمتطلبات التطوير/التصحيح الخاصة.
اتبع هذا البرنامج التعليمي لتصحيح STM32 باستخدام OpenOCD و GDBFrontend.
GDBFrontend يحتوي على مُقدِّر تعبيرات يمكنك استخدام عدة منه في نفس الوقت.



انقر بزر الماوس الأيمن على نقطة توقف لتعيين شرطها.


جميع تعابير المتغيرات والأعضاء والعناصر متصلة في مستكشف المتغيرات VariablesExplorer في GDBFrontend.

يمكنك مراقبة العمليات أو تصفيتها أو إدارتها باستخدام مدير العمليات.


GDBFrontend يحتوي على مجموعة من الميزات للتعاون تسمى "Enhanced Collabration".

الرسم التعاوني متاح عند تمكين Enhanced Collabration. انقر على Draw أو استخدم الاختصار Ctrl + Shift + X للرسم و Ctrl + Shift + C لمسح جميع الرسومات.

مع Enhanced Collabration يتم مزامنة جميع عملاء المصحح في عرض المصدر.

GDBFrontend قابل للتوسيع بشكل كبير وله واجهات برمجة تطبيقات قوية. بعض الأمثلة على قابلية توسيع 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 IPيحدد عنوان الاستماع لخوادم HTTP و WS.
--port=PORT, -p PORTيحدد منفذ HTTP. (0 لمنفذ عشوائي)
--url-base=PATH, -u PATHيحدد مسار قاعدة URL. (الافتراضي: /)
--readonly, -rيجعل محرر النصوص للقراءة فقط. (ملاحظة: هذا الخيار لا يتعلق بالأمان.)
--workdir, -wيحدد دليل العمل.
--plugin-dir, -Pيحدد دليل الإضافات.
--dontopenuionstartup, -Dيتجنب فتح واجهة المستخدم بعد بدء التشغيل مباشرة.
--verbose, -Vيفعّل الإخراج المفصل.
أوامر GDB الخاصة بـ GDBFrontend تبدأ بـ 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 يحتوي على سمات مدمجة.
للتبديل بين السمات استخدم الأمر gf-theme [THEME] في واجهة GDB shell.
(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
أيضًا قد ترغب في الاطلاع على البرنامج التعليمي لتطوير الإضافات.
يمكنك الوصول إلى واجهة برمجة تطبيقات Python الخاصة بـ GDBFrontend عبر الوحدة gdbfrontend.
(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']
يمكنك استخدام الخيار --credentials=USER:PASS لإضافة مصادقة HTTP إلى جلسة المصحح الخاصة بك.
يتم تطوير GDBFrontend بشكل أساسي مع الاختبار على المتصفحات المبنية على Chromium. سيعمل بشكل صحيح مع المتصفحات الأخرى خاصةً Firefox، ولكن إذا واجهت بعض المشكلات على المتصفحات الأخرى، يمكنك إرسال تقرير خطأ.
معظم وظائف GDBFrontend آمنة للخيوط وتعمل على الخيط الرئيسي لـ GDB. لذلك، إذا قمت بتشغيل شيء يحظر على واجهة GDB shell، يجب على وظائف GDBFrontend الانتظار حتى ينتهي.
ستتلقى هذا التحذير عندما تحتاج وظيفة GDBFrontend الآمنة للخيوط إلى العمل وأنت تحظر الخيط الرئيسي لـ GDB.
(gdb) shell
$ ...

عند الخروج من shell، ستستمر وظائف GDBFrontend المحظورة في العمل.
ملاحظة: في بعض الأحيان قد تتلقى هذا التحذير دون تشغيل أي شيء في GDB shell، وهذا يعني أن شيئًا ما (في حلقة أحداث GDB) يستغرق وقتًا طويلاً؛ في هذه الحالة تجاهل هذا التحذير.
GDBFrontend يرسل SIGTERM إلى عملياته الفرعية وتطبيقك وعملياته الفرعية. إذا كان تطبيقك يقوم بتفريع عمليات جديدة وتعيين PGIDs الخاصة بها، فقد لا يغلقها GDBFrontend. في هذه الحالة، يجب عليك إرسال SIGKILL إلى عملياتك.
pkill -f gdb
إذا كنت تستخدم ExpressionEvaluator مع متغيرات/أعضاء موسعة ذات عمق كبير جدًا، فقد يتأثر أداء التمرير وحركة نافذة المُقدِّر سلبًا لتصور المؤشر. في هذه الحالة، يمكنك إيقاف تشغيل توجيهات signal و slot لنافذة المُقدِّر تلك.

في الواقع، gdb-frontend قادر على العمل على Windows ولكن هناك بعض المشكلات الخطيرة في إصدار Windows من GDB تمنع استخدام gdb-frontend على Windows. بالطبع يمكنك استخدام gdb-frontend على WSL إذا كنت تستخدم Windows 10.
يمكنك استخدام gdb-frontend على WSL (Windows Subsystem for Linux).
/proc/net/tcp لا تعمل على WSL. (لا يعاني WSL 2 من هذه المشكلة.)منذ v0.2.0-beta، تحول GDBFrontend إلى استراتيجية إصدار جديدة.
في vX.Y.Z-STABILITY:
X هو الإصدار الرئيسي، يتغير على المدى الطويل مع الميزات والتحسينات الكبيرة.Y هو الإصدار الرئيسي الذي يتضمن ميزات وتحسينات جديدة.Z هو إصدار إصلاحات الأخطاء للإصدارات الرئيسية.STABILITY هو مستوى استقرار الإصدار. (alpha, beta, rcN, stable)التوثيق لا يزال TODO.
توثيق واجهة برمجة التطبيقات لا يزال 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 |
| عام: مُقدِّر تعبيرات جديد | Ctrl + R | GDBFrontend |
| عام: مُقدِّر تعبيرات جديد في نافذة أصلية | 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 / Enhanced Collabration: Enabled |
| التعاون المحسَّن: مسح جميع الرسومات | Ctrl + Shift + C | GDBFrontend / Enhanced Collabration: Enabled |