هل هناك واجهة مستخدم رسومية لـ C++ gdb لنظام التشغيل Linux؟[مغلق]

StackOverflow https://stackoverflow.com/questions/79023

  •  09-06-2019
  •  | 
  •  

سؤال

باختصار:هل يعرف أحد واجهة المستخدم الرسومية لـ gdb التي تجعله على قدم المساواة أو قريبًا من مجموعة الميزات التي تحصل عليها في الإصدار الأحدث من Visual C++؟

بالتفصيل:باعتباري شخصًا قضى الكثير من الوقت في البرمجة على Windows، فإن إحدى أكبر العوائق التي وجدتها عندما يتعين علي برمجة C++ في Linux هي أن تصحيح أي شيء باستخدام سطر الأوامر gdb يستغرق وقتًا أطول عدة مرات مما هو عليه في Visual Studio، ولا يبدو أنه يتحسن مع الممارسة.بعض الأشياء أسهل أو أسرع في التعبير عنها بيانياً.

على وجه التحديد، أنا أبحث عن واجهة المستخدم الرسومية التي:

  • يتعامل مع جميع الأساسيات مثل الانتقال إلى التعليمات البرمجية ومشاهدة المتغيرات ونقاط التوقف
  • يفهم ويمكنه عرض محتويات أنواع بيانات C++ المعقدة والمتداخلة
  • لا يتم الخلط بينه وبين ويفضل أن يتمكن من التنقل بذكاء عبر التعليمات البرمجية النموذجية وهياكل البيانات أثناء عرض المعلومات ذات الصلة مثل أنواع المعلمات
  • يمكن التعامل مع التطبيقات المترابطة والتبديل بين المواضيع المختلفة للتنقل أو عرض الحالة
  • يمكن التعامل مع إرفاق عملية بدأت بالفعل أو قراءة ملف تفريغ أساسي، بالإضافة إلى بدء تشغيل البرنامج في gdb

إذا لم يكن مثل هذا البرنامج موجودًا، فأنا أود أن أسمع عن التجارب التي مر بها الأشخاص مع البرامج التي تلبي بعض النقاط على الأقل.هل لدى أي شخص أي توصيات؟

يحرر:
يعد إدراج الاحتمالات أمرًا رائعًا، وسأأخذ ما يمكنني الحصول عليه، ولكن سيكون من المفيد أكثر أن تدرج في ردودك:
(أ) ما إذا كنت قد استخدمت بالفعل واجهة المستخدم الرسومية هذه أم لا، وإذا كان الأمر كذلك، ما هي التعليقات الإيجابية/السلبية التي لديك بشأنها.
(ب) إذا كنت تعرف، أي من الميزات المذكورة أعلاه مدعومة/غير مدعومة

من السهل الحصول على القوائم، ومواقع مثل هذه رائعة لأنه يمكنك الحصول على فكرة عن تجارب الأشخاص الشخصية مع التطبيقات.

هل كانت مفيدة؟

المحلول

لن تجد أي شئ تراكب GDB الذي يمكنه التنافس مع القوة الأولية لمصحح أخطاء Visual Studio.إنها قوية جدًا، وهي مدمجة بشكل جيد جدًا داخل IDE.

للحصول على بديل Linux، جرب DDD إذا كانت البرامج المجانية هي الشيء الذي تفضله.

نصائح أخرى

سيوفر Eclipse CDT تجربة مماثلة لاستخدام Visual Studio.أستخدم Eclipse CDT يوميًا لكتابة التعليمات البرمجية وتصحيح أخطاء العمليات المحلية والبعيدة.

إذا لم تكن على دراية باستخدام IDE المستند إلى Eclipse، فستستغرق واجهة المستخدم الرسومية بعض الوقت للتعود عليها.ومع ذلك، بمجرد أن تفهم أفكار واجهة المستخدم الرسومية الفريدة لـ Eclipse (على سبيل المثال،منظور)، يصبح استخدام الأداة تجربة رائعة.

توفر أدوات CDT مفهرس C/C++ لائقًا يسمح لك بالعثور بسرعة على مراجع للطرق الموجودة في قاعدة التعليمات البرمجية الخاصة بك.كما أنه يوفر أداة توسيع ماكرو لطيفة ودعمًا محدودًا لإعادة البناء.

فيما يتعلق بدعم تصحيح الأخطاء، فإن CDT قادر على القيام بكل شيء في قائمتك باستثناء قراءة ملف التفريغ الأساسي (قد يدعم هذا، لكنني لم أحاول مطلقًا استخدام هذه الميزة).كما أن تجربتي في تصحيح أخطاء التعليمات البرمجية باستخدام القوالب محدودة، لذا لست متأكدًا من نوع الخبرة التي سيوفرها CDT في هذا الصدد.

لمزيد من المعلومات حول تصحيح الأخطاء باستخدام Eclipse CDT، قد ترغب في الاطلاع على هذه الأدلة:

يعمل gdb -tui بشكل جيد إذا كنت تريد شيئًا يشبه واجهة المستخدم الرسومية، ولكن لا يزال يعتمد على الأحرف.

الدفع مصحح أخطاء Nemiver C/C++.من السهل تثبيته في Ubuntu (أدوات المطور/تصحيح الأخطاء).

تحديث: رابط جديد.

أنا أكره فكرة تطوير Windows، لكن مصحح أخطاء VC++ هو من بين أفضل ما رأيته.لم أجد واجهة أمامية لواجهة المستخدم الرسومية تقترب من واجهة VC.

يعد GDB رائعًا بمجرد أن تعتاد عليه حقًا.استخدمه في حالة الغضب بدرجة كافية وستصبح ماهرًا جدًا.يمكنني أن أتجول في برنامج يقوم بكل الأشياء التي ذكرتها دون بذل الكثير من الجهد بعد الآن.لقد استغرق الأمر شهرًا أو نحو ذلك من المعاناة بسبب ارتباط SSH بخادم بعيد قبل أن أتقن ذلك.لن أعود أبدًا رغم ذلك.

DDD قوي حقًا ولكنه كان به عربات التي تجرها الدواب.لقد وجدت أنه يتجمد في كثير من الأحيان عندما يتلقى رسائل من GDB مفادها أنه لم يزعج.إنه جيد لأنه يحتوي على نافذة واجهة gdb حتى تتمكن من رؤية ما يحدث والتفاعل أيضًا مع gdb مباشرة.لا يمكن استخدام DDD في جلسة X عن بُعد في بيئتي (مشكلة حقيقية، نظرًا لأنني أجلس على عميل رفيع عندما أقوم بتطوير Unix) لسبب ما، لذا فهو خارج نطاق اهتمامي.

اتبعت KDevelop أسلوب KDE النموذجي وعرضت كل شيء للمستخدم.كما أنني لم يحالفني الحظ مطلقًا في تصحيح أخطاء البرامج غير KDevelop في KDevelop.

يعد Gnat Programming Studio (GPS) في الواقع واجهة أمامية جيدة لـ GDB.فهو لا يدير مشاريع Ada فحسب، لذا من المفيد تجربته إذا كنت بحاجة إلى مصحح أخطاء.

يمكنك استخدام Eclipse، لكنه ثقيل الوزن جدًا والعديد من الأشخاص المتمرسين في Unix الذين عملت معهم (بما فيهم أنا) لا يهتمون كثيرًا بواجهته، والتي لن تؤدي فقط إلى STFU وتبتعد عن طريقك.يبدو أيضًا أن Eclipse يشغل مساحة كبيرة ويعمل مثل الكلب.

يبدو أن Qt Creator عبارة عن أشياء جيدة.أظهر لي أحد الزملاء طريقة واحدة لإعداده لتصحيح الأخطاء:

  • قم بإنشاء مشروع جديد، "استيراد المشروع المستند إلى Makefile".
  • قم بتوجيهه إلى مجلد المشروع الجذري (سيقوم بفهرسة المصادر الموجودة أسفله، وهو سريع بشكل مثير للإعجاب).
  • انتقل إلى إعدادات المشروع وأضف تكوين التشغيل، ثم حدد الملف القابل للتنفيذ الذي تريد تصحيح أخطائه ووسائطه.
  • يبدو أن Qt Creator يصر على بناء مشروعك قبل تصحيحه.إذا كنت لا تريد ذلك، أو لا تستخدم make، فيمكنك تجاوز أمر make.لقد غيرتها إلى "صحيح".:)

قد يبدو هذا بمثابة عمل كبير جدًا لتصحيح أخطاء أحد التطبيقات التي قمت بتجميعها بالفعل، ولكن الأمر يستحق ذلك.يعرض مصحح الأخطاء الخيوط والمكدسات والمتغيرات المحلية بطريقة مشابهة لـ Visual Studio ويستخدم العديد من اختصارات لوحة المفاتيح نفسها.يبدو أنه يتعامل مع القوالب جيدًا، على الأقل std::string وstd::map.يبدو أن الارتباط بالعمليات الحالية وعمليات التفريغ الأساسية مدعوم، على الرغم من أنني لم أختبره بعد.

ضع في اعتبارك أنني استخدمته لمدة تقل عن ساعة الآن، لكنني معجب حتى الآن.

أستخدم cgdb، وهو بسيط ومفيد

أستخدم DDD كثيرًا، وهو قوي جدًا بمجرد أن تتعلم استخدامه.شيء واحد أود قوله هو عدم استخدامه عبر X عبر شبكة WAN لأنه يبدو أنه يقوم بالكثير من تحديثات الشاشة غير الضرورية.

أيضًا، إذا لم تكن مرتبطًا بـ GDB ولا تمانع في دفع القليل من المال، فسأحاول استخدام TotalView.يحتوي على منحنى تعليمي حاد بعض الشيء (يمكن أن يكون بالتأكيد أكثر سهولة)، لكنه أفضل مصحح أخطاء C++ استخدمته على الإطلاق على أي نظام أساسي ويمكن توسيعه ليشمل استكشاف الكائنات الخاصة بك بطرق مخصصة (مما يسمح لك بعرض قائمة STL كقائمة فعلية للكائنات، وليست مجموعة من أعضاء البيانات الداخلية المربكين، وما إلى ذلك.)

تحقق من مشروع Eclipse CDT.إنه مكون إضافي لـ Eclipse موجه نحو تطوير C/C++ ويتضمن منظور تصحيح أخطاء غني بالميزات إلى حد ما (يستخدم خلف الكواليس GDB).وهي متاحة على مجموعة واسعة من المنصات.

تشبه الواجهة الأمامية لـ Eclipse Gdb الواجهة الأمامية لـ emacs، المرتبطة بإحكام بـ emacs IDE.إذا كنت تعمل بالفعل مع إيماكس، فسوف يعجبك:

الواجهة الأمامية لـ GDB Emacs

DDD هي الواجهة الأمامية لـ GNU لـ gdb: http://www.gnu.org/software/ddd/

لقد استخدمت KDbg (يعمل فقط ضمن KDE).

من المؤكد أن Qt Creator-on-Linux على قدم المساواة مع Visual Studio-on-Windows لـ C++ في الوقت الحاضر.أود أن أقول أفضل من ناحية مصحح الأخطاء.

هناك بيئة تطوير متكاملة واحدة مفقودة في هذه القائمة وهي فعالة للغاية (لقد استخدمتها في العديد من مشاريع C/C++ دون أي مشاكل): نتبيانز.

لقد جربت عدة واجهات رسومية مختلفة لـ gdb ووجدت أن DDD هو الأفضل منهم.وبينما لا أستطيع التعليق على العروض الأخرى غير gdb لنظام التشغيل Linux، فقد استخدمت عددًا من مصححات الأخطاء الأخرى على منصات أخرى.

يقوم gdb بمعظم الأشياء الموجودة في قائمة أمنياتك.DDD يضع واجهة أجمل عليهم.على سبيل المثال، أصبح تبديل الخيط أكثر بساطة.يعد تحديد نقاط التوقف أمرًا بسيطًا كما تتوقع.

يمكنك أيضًا الحصول على نافذة cli في حالة وجود شيء غامض تريد القيام به.

الميزة الوحيدة لـ DDD التي تبرز فوق أي مصحح أخطاء آخر استخدمته هي "الرسوم البيانية" للبيانات.يتيح لك ذلك عرض وترتيب الهياكل والأشياء والذاكرة كمربعات قابلة للسحب.سيؤدي النقر المزدوج على المؤشر إلى فتح البيانات التي تم إلغاء الإشارة إليها بروابط مرئية تعود إلى الأصل.

ما يمكن تجاوزه سيكون محدودًا بمعلومات تصحيح الأخطاء التي ينتجها g++، إلى حد كبير.يوفر Emacs واجهة لـ gdb تتيح لك التحكم فيه عبر أشرطة الأدوات/القوائم وعرض البيانات في نوافذ منفصلة، ​​بالإضافة إلى كتابة أوامر gdb مباشرة.يوفر CDT الخاص بـ Eclipse أدوات مماثلة.لقد سمعت عن Anjuta وCode::Blocks ولكني لم أستخدمهما مطلقًا.

باعتباري شخصًا على دراية بـ Visual Studio، فقد ألقيت نظرة على العديد من بيئات التطوير المتكاملة (IDE) مفتوحة المصدر لاستبدالها، ويأتي KDevelop أقرب IMO لكونه شيئًا يمكن لشخص Visual C++ الجلوس عليه والبدء في استخدامه.عندما تقوم بتشغيل المشروع في وضع التصحيح، فإنه يستخدم gdb لكن kdevelop يتعامل مع الأمر برمته إلى حد كبير بحيث لا يتعين عليك معرفة أنه gdb؛أنت مجرد خطوة واحدة أو تعيين ساعات للمتغيرات.

لا يزال ليس بجودة Visual Studio Debugger، للأسف.

لم تذكر ما إذا كنت تستخدم Windows أو UNIX.

على أنظمة UNIX، ك ديفيلوب جيد لكني أستخدمه KDbg لأنه سهل الاستخدام وسيعمل أيضًا مع التطبيقات غير المطورة في KDevelop.

كسوف جيد على كلا النظامين الأساسيين.

على نظام التشغيل Windows، هناك حزمة رائعة تسمى مطور سطح المكتب واسكانا وهو عبارة عن Eclipse CDT وMinGW تم تعبئتهما وتكوينهما مسبقًا بشكل جيد للحد الأدنى من الألم.إنه أفضل شيء وجدته لتطوير كود GNU على Windows.

لقد استخدمت كل هذه المصححات ولم يكن أي منها بجودة MS Dev Studio.من المحتمل أن يكون Eclipse/Wascana هو الأقرب ولكن به قيود مثل عدم قدرتك على الدخول إلى ملفات DLL ولا يقوم بعمل جيد في فحص المتغيرات.

هل سبق لك أن ألقيت نظرة على مصحح الأخطاء DS-5?

هناك نسخة مدفوعة تتضمن الكثير من الميزات المفيدة، ولكن يمكنك أيضًا استخدام Community Edition مجانًا (وهو أيضًا مفيد جدًا خاصة للأنظمة المضمنة).

لدي تجربة إيجابية مع هذه الأداة عند تصحيح أخطاء تطبيقات Android على جهاز حقيقي باستخدام Eclipse.

ال الكود:كتل يحتوي C++ IDE على غلاف رسومي، مع عدد قليل من الميزات التي تريدها، ولكن لا شيء يضاهي قوة VS.

VisualGDB هو مكون إضافي آخر لـ Visual Studio لتطوير وتصحيح التطبيقات على Linux والأنظمة الأساسية المدمجة.

يعمل برنامج KDevelop بشكل جيد.

هل حاولت gdb -w مع cygwin gdb.من المفترض أن يكون لديك واجهة Windows التي تعمل بشكل جيد إلى حد ما.

المشكلة الوحيدة التي وجدتها هي أنه على جهازي الحالي لم يعمل بهذه الطريقة إلا بعد أن قمت بتثبيت ddd.أظن أنه يتطلب tcltk الذي تم تثبيته عندما قمت بتثبيت ddd.

أحدث إصدار من Geany يدعمه (على الرغم من أنه يعمل بنظام Linux فقط)

إذا كنت تبحث عن gdb ضمن Visual Studio، فتحقق من ذلك WinGDB.

في آخر 15 شهرًا، استخدمت البصيرة (جاءت مع FC6).إنها ليست رائعة، فهي مكتوبة بلغة Tcl/Tk، ولكنها بسيطة ومفيدة.DDD له نفس الجودة/الفائدة، ولكنه أصعب إلى حد ما في الاستخدام (العديد من الأخطاء والإغفالات في واجهة المستخدم الرسومية).لقد حاولت أيضًا دمج gdb مع IDE الخاص بي، SlickEdit.لقد عملت بشكل جيد (لعبت معها حوالي 4 ساعات)، لكن لم يعجبني تبديل سياق واجهة المستخدم الرسومية.أحب أن يظل IDE الخاص بي دون تغيير أثناء تصحيح الأخطاء؛على نظام التشغيل Windows، أستخدم SlickEdit لـ IDE وVisual Studio Debugger لتصحيح الأخطاء.إذن من 3:Insight وDDD وSlickEdit، Insight هو خياري الأول، أستخدمه بنسبة تزيد عن 95% من الوقت، ويشكل سطر الأوامر gdb وDDD الـ 5% الأخرى.إذا أتيحت لي الفرصة، فسوف أقوم بتقييم Eclipse في مرحلة ما، ويبدو أن جهاز الكمبيوتر الخاص بي لا يحتوي على ذاكرة وصول عشوائي كافية (1 جيجابايت فقط) لتشغيل Eclipse بشكل جيد.

لقد سمعت أيضًا الكثير من الثناء على TotalView، بما في ذلك الثناء الأول أثناء مقابلة العمل.لقد حصلت على تقييم لشركتنا في أواخر عام 2008، ولكن في النهاية لم نتقدم لأن gdb كان جيدًا بما يكفي لتلبية احتياجاتنا؛وهو مجاني وفي كل مكان.

استخدم www.zero-bugs.com/ Zero Debugger ، يتطلب دعم C ++ 0x من GCC

كنت أبحث عن مصحح أخطاء للتنقل عبر برنامج قيد التشغيل.يقول:يربط.تم إنشاء البرنامج باستخدام Eclipse، ولكن ربما بسبب بعض عوائق تعدد مؤشرات الترابط، لا توجد ملفات مصدر مولعة.أيا كان.

لقد شعرت براحة شديدة مع NetBeans.

  • [تصحيح] من القائمة -> قم بإرفاق Deugger...
  • حيث اختارت العملية العملية التي سيتم تصحيحها
  • كمشروع [مشروع جديد]

الآن تختفي النافذة ولا ترى شيئًا.تنفصل عن العملية.يساعد مربع القراءة "Stop".

  • مصدر الاستيراد من المشروع على سبيل المثال.مجلد.".../MyProject/src
  • الآن يظهر في مشروعك، ويمكنك تعيين نقاط التوقف.
  • تاتش مرة أخرى المصحح
  • اختار عملية التصحيح.
  • يجب أن يتوقف مصحح الأخطاء إذا وصل البرنامج إلى نقطة التوقف التالية.

الذهاب إلى [نافذة] -> [تصحيح الأخطاء] -> هل ستجعل نافذتك مريحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top