Чи є графічний графічний інтерфейс C ++ для Linux? [зачинено]


210

Коротко: Хто-небудь знає про графічний інтерфейс для gdb, який приводить його нарівні або наближається до набору функцій, який ви отримуєте в останній версії Visual C ++?

Детально: Оскільки хтось витратив багато часу на програмування в Windows, один із великих каменів спотикання, який я знаходив, коли мені доводиться кодувати C ++ в Linux, - це те, що налагодження чого-небудь за допомогою gdb командного рядка займає у мене кілька разів довше, ніж це робиться в Visual Studio, і, схоже, не покращується практика. Деякі речі просто простіше або швидше виразити графічно.

Зокрема, я шукаю графічний інтерфейс, який:

  • Обробляє всі основи, такі як перехід і введення коду, перегляд змінних та точок перериву
  • Розуміє та може відображати вміст складних та вкладених типів даних C ++
  • Не плутається і, бажано, може інтелігентно переходити через шаблонні коди та структури даних, показуючи відповідну інформацію, таку як типи параметрів
  • Може обробляти потокові програми та перемикатися між різними потоками, щоб переходити або переглядати стан
  • Може працювати з приєднанням до вже запущеного процесу або зчитувати дамп основної роботи, на додаток до запуску програми в gdb

Якщо такої програми не існує, я хотів би почути досвід, який люди мали з програмами, які відповідають хоча б деяким пунктам. Хтось має якісь рекомендації?

Редагувати: перерахування
можливостей чудово, і я візьму те, що я можу отримати, але було б ще корисніше, якщо ви могли б включити у свої відповіді:
(а) незалежно від того, використовували ви цей графічний інтерфейс чи ні, і якщо так , які позитивні / негативні відгуки ви маєте про це.
(b) Якщо ви знаєте, які з перелічених вище функцій не підтримуються

До списків легко зайти, подібні сайти чудові, оскільки ви можете отримати уявлення про особистий досвід людей із програмами.


21
+1 для "Такі сайти чудові, тому що ви можете отримати уявлення про особистий досвід людей." Забагато людей в даний час просто роблять перелік списку, який IMHO повністю пропускає суть.
kizzx2


Дивіться також аналогічне запитання: що є хорошою альтернативою unix для DDD (Data Debugger)?
олібре

Перегляньте цей список gdb лицьових сторінок тут: sourceware.org/gdb/wiki/GDB%20Front%20Ends , а першому в списку подайте знімок. Виглядає дуже перспективно та сучасно, є кросплатформою, оскільки базується на веб-переглядачі: gdbgui.com .
Габріель Степлес

Відповіді:


55

Ви не знайдете нічого, що накладає GDB, що може конкурувати з силою потужності налагоджувача Visual Studio. Це просто занадто потужно, і він занадто добре інтегрований всередині IDE.

Для альтернативи Linux спробуйте DDD, якщо ваша річ - безкоштовне програмне забезпечення.


2
WinDBG набагато перевершує те, що надає Visual Studio. Візуальний налагоджувач студії знаходиться на вершині тієї ж архітектури, що і WinDBG. З урахуванням сказаного, GDB не має чого запитати, порівнюючи його з Windbg. Графічний налагоджувач, кращий за DDD, був би чудовим. Eclipse CDT - хороша альтернатива. Думаю, був інтерфейс KDE
bigmonachus

114
Ой дивись. Відповідь, яка заявляє претензію, не створюючи жодної копії. Мені також дивно, що відповідь, яка не відповідає на питання, була прийнята.
альтернатива

3
для тих, хто приходить сюди, шукаючи реальної відповіді, знайте, що DDD - це сміття. Кращий графічний інтерфейс налагодження для Linux, який я знайшов, - це IDA, яка не є безкоштовним програмним забезпеченням.
bkconrad

1
Дайте відповідь на питання якнайкраще або нічого не кажіть. Використовуючи обидва, Visual Studio є більш заповненим, але DDD досить хороший, що я не пропускаю VS. На жаль, DDD показує свій вік.
Алан Де Смет

6
Цю публікацію потрібно оновити / покращити. Qt Creator приголомшливий, нарівні з Visual Studio.
vharron

85

Eclipse CDT забезпечить досвід, порівнянний з використанням Visual Studio. Я використовую Eclipse CDT щодня для написання коду та налагодження локальних та віддалених процесів.

Якщо ви не знайомі з використанням IDE на основі Eclipse, GUI трохи звикне. Однак, як тільки ви зрозумієте ідеї графічного інтерфейсу, унікальні для Eclipse (наприклад, перспектива), використання інструменту стає приємним досвідом.

Інструмент CDT забезпечує гідний індексатор C / C ++, що дозволяє швидко знаходити посилання на методи у вашій кодовій базі. Він також забезпечує хороший інструмент розширення макросу та обмежену підтримку рефакторингу.

Що стосується підтримки налагодження, CDT може робити все у вашому списку за винятком читання основного дампа (він може підтримувати це, але я ніколи не намагався використовувати цю функцію). Також мій досвід налагодження коду з використанням шаблонів обмежений, тому я не впевнений, який досвід CDT надасть у цьому плані.

Для отримання додаткової інформації про налагодження за допомогою Eclipse CDT, ви можете переглянути ці посібники:


10
Читання основних скидів підтримується. (Це називається налагоджувачем посмертного періоду.)
Джош Келлі

Я мав кращий досвід у налагодженні Eclipse CDT, ніж у Visual Studios. Я не дав MSVC занадто багато шансів, хоча.
нотлеш

3
Я думаю, що QtCreator слід згадати поряд із Eclipse, оскільки він є порівнянним.
нерівномірна

78

gdb -tui працює нормально, якщо ви хочете щось із графічним інтерфейсом, але все ж на основі символів.


45
Ви також можете перейти в режим TUI (текстовий користувальницький інтерфейс), перебуваючи в gdb, використовуючи команду '-'. Повернення до командного рядка - Ctrl-X Ctrl-A. Перебуваючи в режимі TUI, вгору, вниз, вліво та вправо рухайтесь через джерело. Використовуйте Ctrl-P, Ctrl-N, Ctrl-F і Ctrl-B для навігації по історії командного рядка.
Бен Комбі,

Це саме те, що я шукав. Потужність командного рядка gdb з деякими корисними видами, які оновлюються під час руху.
Кевін Кокс

7
.Gdbinit на steriods надає вам дійсно вражаючий графічний інтерфейс на основі персонажа, з кольором: github.com/cyrus-and/gdb-dashboard
cs01

Мені дуже подобається gdb-приладова панель, але треба згадати і вольтрон .
nonsensickle

3
@Barry спасибі Для всіх, хто цікавиться, ось посилання: github.com/cs01/gdbgui . Він має відображення структури даних, подібне до DDD, архітектура клієнт / сервер для легкої налагодження віддалених машин без необхідності переадресації X та можливість досліджувати складні змінні тощо.
cs01

47

Перевірте налагоджувач Nemiver C / C ++ . Його легко встановити в Ubuntu (Інструменти для розробників / налагодження).

Оновлення: нове посилання.


Абсолютно казковий , також підтримується apt: 'apt-get install nemiver'. Моя єдина суперечка - це збірка з репо не вдалася через "Не знайдено пакет gconf-2.0".
J Evans

інтерфейс досить зрозумілий і хороший для читання, але він іноді виходить з ладу під час використання можливостей інтерфейсу v0.9.6. Він також приймає налагоджені параметри програми, що я досі не можу дозволити робити DDD.
Сила Водолія

Також доступний у Fedora 30 (принаймні). Я просто роздумував над цим питанням і ніколи.
користувач3236841

31

Qt Creator здається гарним. Колега показав мені один із способів налаштувати його для налагодження:

  • Створіть новий проект "Імпорт проекту на основі Makefile".
  • Наведіть його на папку кореневих проектів (вона буде індексувати джерела під нею, і це вражаюче швидко).
  • Перейдіть до налаштувань проекту та додайте конфігурацію запуску, а потім вкажіть виконуваний файл, який ви хочете налагодити, та його аргументи.
  • Здається, Qt Creator наполягає на створенні вашого проекту перед тим, як налагодити його. Якщо ви цього не хочете, або не використовуєте make, просто перейдіть до проектів -> build (ліва панель), а потім на правій панелі в "Створіть кроки" видаліть усі кроки, включаючи крок за замовчуванням, коли ви створили проект.

Це може здатися дещо великою роботою для налагодження програми, яку я вже склав, але це того варте. Налагоджувач показує потоки, стеки та локальні змінні аналогічно Visual Studio і навіть використовує багато тих самих комбінацій клавіш. Здається, добре обробляє шаблони, принаймні std :: string та std :: map. Здається, підтримується приєднання до існуючих процесів та основних скидів, хоча я ще не перевіряв цього.

Майте на увазі, що я використовував його менше години та зараз, але я поки вражений.


29

Я ненавиджу ідею розробки Windows, але налагоджувач VC ++ - один із найкращих, що я бачив. Я не знайшов переднього кінця графічного інтерфейсу, який був би близьким до VC.

GDB є приголомшливим, коли ви дійсно звикаєте до нього. Використовуйте його в гніві достатньо, і ви станете дуже досвідченим. Я можу бавитись навколо програми, виконуючи всі перераховані вами речі без особливих зусиль. Страждання через SSH-зв’язок з віддаленим сервером минуло місяць або близько того, перш ніж я пройшов досвід. Я ніколи не повернусь назад.

DDD дійсно потужний, але він був досить баггі. Я виявив, що він замерзав досить часто, коли отримував повідомлення від GDB, що він не грозить. Це добре, оскільки він має вікно інтерфейсу gdb, щоб ви могли бачити, що відбувається, а також безпосередньо взаємодіяти з gdb. DDD не може бути використаний на віддаленому сеансі X в моєму середовищі (справжня проблема, оскільки я сиджу за тонким клієнтом, коли я роблю Unix Dev) чомусь, тому це не для мене.

KDevelop дотримувався типового стилю KDE і відкривав для користувача ВСЕ. Я також ніколи не мав удачі налагоджувати не KDevelop програми в KDevelop.

Студія програмування Gnat (GPS) насправді є гарним передумовою для GDB. Він не просто керує проектами Ada, тому варто спробувати, якщо вам потрібен налагоджувач.

Ви можете використовувати Eclipse, але це досить велика вага, і багато досвідчених людей з Unix, з якими я працював (включаючи мене), не сильно піклуються про його інтерфейс, який не просто STFU і вийде з вашого шляху. Затьмарення також, здається, займає багато місця і біжить, як собака.


2
Просто хотів підключити мій проект, gdbgui ( github.com/cs01/gdbgui ). Це архітектура клієнт / сервер, тому добре працює налагодження віддалених машин без сеансу X. Він також має термінал для прямої взаємодії з GDB та має візуальні зображення для відображення структур даних, подібних до DDD.
cs01

Порівняння плюсів і мінусів на основі досвіду. Тільки те, що це питання потребує. ty
Хіт


16

Я багато використовую DDD, і він досить потужний, коли навчишся ним користуватися. Я б сказав, що не використовувати його над X через WAN, оскільки, здається, робиться багато непотрібних оновлень екрана.

Крім того, якщо ви не знайомі з GDB і не проти заробити трохи грошей, то я б спробував TotalView. Він має трохи круту криву навчання (це, безумовно, може бути більш інтуїтивно зрозумілим), але це найкращий налагоджувач C ++, який я коли-небудь використовував на будь-якій платформі, і його можна розширити, щоб представити ваші об'єкти за допомогою спеціальних способів (таким чином, ви можете переглянути огляд Список STL як фактичний перелік об'єктів, а не купу плутаючих внутрішніх членів даних тощо)


Я взагалі не можу змусити DDD працювати над віддаленим X; просто виходить із помилок Xlib на моєму тонкому клієнті :(
Адам Хоуз

totalview виглядає як життєздатна альтернатива. Я не вважаю DDD кращим, ніж інтерфейс прокльонів gdb.
deft_code

8

Ознайомтеся з проектом CDT Eclipse. Це плагін для Eclipse, орієнтований на розвиток C / C ++ і включає досить перспективну перспективу налагодження (що за лаштунками використовує GDB). Він доступний на найрізноманітніших платформах.




6

Я використовував KDbg (працює лише під KDE).


3
KDbg не обмежується KDE.
nobar

Це приголомшливо . Цікаво, де це було весь цей час.
edmz

5

Я спробував кілька різних guis для gdb і виявив, що DDD є кращим з них. І хоча я не можу коментувати інші, не gdb пропозиції для Linux, я використовував ряд інших налагоджувачів на інших платформах.

gdb робить більшість речей, які є у вашому списку бажань. DDD ставить на них приємніший фронт. Наприклад, комутація різьби робиться простішою. Встановлення точок прориву так само просто, як і можна було очікувати.

Ви також отримуєте вікно кліпу на випадок, якщо ви хочете зробити щось незрозуміле.

Однією з особливостей DDD, яка виділяється над будь-яким іншим налагоджувачем, який я використовував, є дані "графік". Це дозволяє відображати та розташовувати структури, об'єкти та пам'ять як перетягувані ящики. Подвійне клацання вказівника відкриє дані про відмінність із візуальними посиланнями назад на батьківську.


Чи ddd працює над програмами з аргументами? Мені не вдалося передати аргументи ...
user3236841

Якщо я пам'ятаю правильно, DDD може надати вам вікно консолі безпосередньо в GDB. На консолі GDB можна встановити аргументи командного рядка за допомогою команди «встановити аргументи xyz abc».
Ендрю

5

Qt Creator-on-Linux, безумовно, нарівні з Visual Studio-on-Windows для C ++ на сьогодні. Я б навіть сказав краще на налагоджувальній стороні.


5

У цьому списку відсутня одна IDE, яка є дуже ефективною (я використовував її в багатьох проектах C / C ++ без жодних проблем): Netbeans .


Я дуже віддаю перевагу cgdb зараз, коли я звик, але Netbeans був таким чудовим кроком від VS.
zzxyz

3

Те, що можна зробити через, буде значною мірою обмежене інформацією про налагодження, яку виробляє g ++. Emacs надає інтерфейс до gdb, який дозволяє керувати ним через панелі інструментів / меню та відображати дані в окремих вікнах, а також безпосередньо вводити команди gdb. CDT Eclipse пропонує подібні інструменти. Я чув про Anjuta та Code :: Blocks, але ніколи їх не використовував.


3

Як хтось знайомий з Visual Studio, я переглянув кілька IDE з відкритим кодом, щоб замінити його, і KDevelop приходить найближчим IMO до того, що людина, що може бути просто сісти та почати користуватися Visual C ++. Коли ви запускаєте проект у режимі налагодження, він використовує gdb, але kdevelop в значній мірі обробляє все, щоб вам не потрібно було знати, що це gdb; ви просто поодинокі кроки або привласнення годинників змінним.

На жаль, це ще не так добре, як Visual Studio Debugger, на жаль.


3

Ви не згадуєте, чи використовуєте ви Windows чи UNIX.

У системах UNIX KDevelop хороший, але я використовую KDbg оскільки він простий у використанні, а також буде працювати з додатками, не розробленими в KDevelop.

Затемнення хороший на обох платформах.

У Windows є чудовий пакет під назвою Wascana Desktop Developer, який Eclipse CDT і MinGW, упакований і заздалегідь налаштований для мінімуму болю. Це найкраще, що я знайшов для розробки коду GNU в Windows.

Я використовував усі ці налагоджувачі, і жоден з них не такий хороший, як MS Dev Studio. Eclipse / Wascana, мабуть, найближчий, але він має обмеження, як ви не можете вступати в DLL, і це не так добре, як робота при вивченні змінних.


3

Ви коли-небудь заглядали на відладчик DS-5 ?

Є платна версія, яка включає в себе безліч корисних функцій, але ви також можете безкоштовно використовувати Community Edition (що також дуже корисно, особливо для вбудованих систем).

Я маю позитивний досвід роботи з цим інструментом під час налагодження програм Android на реальних пристроях за допомогою eclipse.





1

Ви спробували gdb -w із cygwin gdb. Існує можливість мати інтерфейс Windows, який працює досить добре.

Єдина проблема, яку я виявила - це те, що на моєму теперішньому апараті він не працював таким чином, поки не встановив ddd. Я підозрюю, що він вимагає tcltk, який був встановлений, коли я встановив ddd.




0

В останні 15 місяців я використовую розуміння (прийшов разом з FC6). Це не велико, це написано в Tcl / Tk, але це просто і корисно. DDD має аналогічну якість / корисність, але дещо складніший у використанні (різні графіки та недоліки GUI). Я також намагався інтегрувати gdb зі своїм IDE, SlickEdit. Це працювало нормально (я грав із ним 4 години), але мені не сподобалися контекстні комутатори GUI. Мені подобається, що мій IDE залишається незмінним під час налагодження; у Windows я використовую SlickEdit для IDE та Visual Studio Debugger для налагодження. Отже, з 3: Insight, DDD та SlickEdit, Insight - це мій перший вибір, я використовую його> 95% часу, командний рядок gdb та DDD складають інші 5%. Якщо я отримаю шанс, я колись оціню Eclipse, моєму робочому ПК, здається, не вистачає оперативної пам’яті (лише 1 ГБ), щоб Eclipse міг добре працювати.

Я також чув багато похвал для TotalView, включаючи першу руку під час співбесіди. Я отримав оцінку для нашої компанії наприкінці 2008 року, але врешті-решт ми не продовжили роботу, оскільки gdb був досить хорошим для наших потреб; і це вільно і всюди.


0

Використовуйте www.zero-bugs.com/ Zero debugger, для нього потрібна підтримка C ++ 0x від gcc


1
Веб-сайт www.zero-bugs.com/ вниз
vharron

0

Я шукав налагоджувача, щоб перейти через запущену програму. Скажіть: прикріпіть. Програма була побудована із затемненням, але, можливо, через кілька багатопотокових перешкод, жодних вихідних файлів, де це подобається. Що ніколи.

Мені було дуже зручно з NetBeans.

  • [налагодження] з меню -> Вкласти Deugger ...
  • як процес обрав налагодження
  • як проект [новий проект]

Тепер вікно відхиляється, і ви нічого не бачите. відірватися від процесу. Прочитаний квадрат "Стоп" допомагає.

  • імпортувати джерело з проекту у вигляді папки. "... / MyProject / src
  • Тепер він з’являється у вашому проекті, і ви можете встановити точки прориву.
  • знову підчепити налагоджувач
  • вибрав процес налагодження.
  • відладчик повинен зупинитися, якщо програма досягне наступної точки розриву.

Перехід до [вікна] -> [налагодження] -> Чи зробить ваше вікно зручним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.