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. (حزمة أور)
yay -S gdb-frontend-bin
ويمكنك تشغيله:
gdbfrontend
حزمة Flatpak هي TODO.
اتبع هذا البرنامج التعليمي لمعرفة كيفية تصحيح أخطاء تطبيقات Dockerized C/C++ باستخدام GDBFrontend.
اتبع هذا البرنامج التعليمي السريع لتصحيح أخطاء الأجهزة المضمنة باستخدام GDBFrontend.
اتبع هذا البرنامج التعليمي السريع لتصحيح أخطاء ملحقات C Python الأصلية باستخدام GDBFrontend.
يحتوي GDBFrontend على واجهات برمجة تطبيقات قوية وقابلة للتوسيع. اتبع هذا البرنامج التعليمي السريع لتتعلم كيفية تطوير المكونات الإضافية لـ GDBFrontend.
اتبع هذا البرنامج التعليمي السريع للحصول على أفكار التكامل لمتطلبات التطوير/التصحيح الخاصة.
اتبع هذا البرنامج التعليمي لتصحيح أخطاء STM32 باستخدام OpenOCD وGDBFrontend.
يحتوي GDBFrontend على مُقيِّم تعبير يمكنك استخدامه عدة مرات في نفس الوقت.
انقر بزر الماوس الأيمن على نقطة التوقف لتعيين حالتها.
ترتبط تعبيرات جميع المتغيرات والأعضاء والعناصر في VariablesExplorer الخاص بـ GDBFrontend.
يمكنك مشاهدة العمليات أو تصفيتها أو إدارتها باستخدام مدير العمليات.
يحتوي GDBFrontend على مجموعة من الميزات للتعاون تسمى "التعاون المحسن".
يتوفر رسم التعاون عند تمكين التعاون المحسن. انقر للرسم أو استخدم اختصار Ctrl + Shift + X للرسم و Ctrl + Shift + C لمسح جميع الرسومات.
من خلال التعاون المحسن، تتم مزامنة جميع عملاء مصحح الأخطاء عند عرض المصدر.
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 |
عام: New ExpressionEvaluator | السيطرة + ر | GDBFrontend |
عام: ExpressionEvaluator جديد على النافذة الأصلية | Ctrl + Shift + R | GDBFrontend |
عام: مكتشف مصدر غامض | السيطرة + ص | GDBFrontend |
وقت التشغيل: تشغيل | F5 | GDBFrontend |
وقت التشغيل: متابعة | F6 | GDBFrontend |
وقت التشغيل: إيقاف مؤقت/مقاطعة | F7 | GDBFrontend |
وقت التشغيل: خطوة أكثر | F8 | GDBFrontend |
وقت التشغيل: خطوة إلى | F9 | GDBFrontend |
وقت التشغيل: تعليمات الخطوة | F10 | GDBFrontend |
وقت التشغيل: توقف | F11 | GDBFrontend |
التعاون المحسن: تبديل وضع الرسم | السيطرة + التحول + X | GDBFrontend / التعاون المحسن: ممكن |
التعاون المحسن: مسح كافة الرسومات | Ctrl + Shift + C | GDBFrontend / التعاون المحسن: ممكن |
يحتوي GDBFrontend على سمات مدمجة.
للتبديل بين السمات، استخدم الأمر gf-theme [THEME]
على غلاف 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
للتبديل مرة أخرى إلى الموضوع الافتراضي.
(gdb) gf-theme
قد ترغب أيضًا في الاطلاع على البرنامج التعليمي لتطوير البرنامج المساعد.
يمكنك الوصول إلى واجهة برمجة تطبيقات Python الخاصة بـ GDBFrontend عبر وحدة gdbfrontend
.
(gdb) python-interactive
> >> dir ( gdbfrontend )
على سبيل المثال، يمكنك الحصول على كافة مآخذ توصيل العميل مثل هذا:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
أو يمكنك الحصول على جميع المكونات الإضافية:
> >> 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
$ ...
عند الخروج من الصدفة، سيستمر حظر وظائف GDBFrontend في العمل.
ملحوظة: في بعض الأحيان قد تحصل على هذا التحذير دون تشغيل أي شيء في GDB Shell، فهذا يعني أن شيئًا ما (في حلقة حدث GDB) يستغرق وقتًا طويلاً؛ في هذه الحالة فقط تجاهل هذا التحذير.
يرسل GDBFrontend SIGTERM إلى عملياته الفرعية وتطبيقك وعملياته الفرعية. إذا كان تطبيقك يقوم بتفرع عمليات جديدة وتعيين معرفات PGID الخاصة بها، فقد لا يقوم GDBFrontend بإغلاقها. في هذه الحالة يجب عليك إرسال SIGKILL إلى عملياتك.
pkill -f gdb
إذا كنت تستخدم ExpressionEvaluator مع متغيرات/أعضاء موسعة ذات عمق طويل جدًا، فقد يتأثر أداء تحريك نافذة التمرير والمقيم بشكل سيئ بالنسبة لتصور المؤشر. في هذه الحالة، يمكنك إيقاف تشغيل إشارات الفتحة والإشارة لنافذة المُقيِّم تلك.
في الواقع، gdb-frontend قادر على العمل على Windows ولكن هناك بعض المشكلات الخطيرة في إصدار Windows الخاص بـ GDB والتي تتجنب استخدام gdb-frontend على Windows. بالطبع يمكنك استخدام gdb-frontend على WSL إذا كنت تستخدم Windows 10.
يمكنك استخدام gdb-frontend على WSL (نظام Windows الفرعي لنظام Linux).
/proc/net/tcp
لا تعمل على WSL. (WSL 2 ليس لديه هذه المشكلة.) منذ الإصدار 0.2.0 التجريبي، تحولت GDBFrontend إلى استراتيجية إصدار جديدة.
في vX.YZ-STABILITY
:
X
عبارة عن إصدارات رئيسية ، تتغير على المدى الطويل مع الميزات والتحسينات الرئيسية.Y
هي الإصدارات الرئيسية التي تتضمن ميزات وتحسينات جديدة.Z
عبارة عن إصدارات bugfix للإصدارات الرئيسية.STABILITY
هو مستوى استقرار الإصدار. ( alpha
، beta
، rcN
، stable
) التوثيق هو TODO حتى الآن.
توثيق واجهة برمجة التطبيقات (API) هو TODO حتى الآن.
يمكنك قراءة البرنامج التعليمي لتطوير البرنامج المساعد.
يتم تطوير السمات كمكونات إضافية.
انضم إلى مجتمع Discord.
يمكنك المساهمة في الالتزام بالمشروع أو تطوير مكون إضافي. جميع الالتزامات هي موضع ترحيب.
عملة | عنوان |
---|---|
بيتكوين | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
إيثريوم/USDT/USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
ويفضل التبرع بـ USDT أو USDC ولكن يمكنك التبرع بأي من العملات المذكورة أعلاه. ؟
حقوق الطبع والنشر (C) 2019، Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
رخصة جنو العامة الإصدار 3 (GPL-3)
يجوز لك نسخ البرنامج وتوزيعه وتعديله طالما قمت بتتبع التغييرات/التواريخ في الملفات المصدر. أي تعديلات على البرامج أو البرامج بما في ذلك (عبر المترجم) يجب أيضًا توفير التعليمات البرمجية المرخصة بـ GPL بموجب GPL بالإضافة إلى تعليمات الإنشاء والتثبيت.