LINUX.ORG.RU

Научите дебажить


0

3

Задача вот в чем, есть компилируемый код, но неправильно работающий. Идет работа с массивом, хотелось бы возможность просмотра элементов массива, и выполнение кода построчно. P.S. использую блокнот и терминал, компилирую g++. Как вариант могу использовать Qt Creator. P.S. кодю вполне хорошо, а вот с дебагом вообще не знаком.


Я для таких целей макросы использую, вызывающие fprintf в stderr. Для замедления можно sleep вызывать. А можно все в файл гнать, а потом его просматривать.

По-моему, так намного проще, чем с этими непонятными gdb возиться.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

По-моему, так намного проще, чем с этими непонятными gdb возиться.

Чаще проще так, да. Но у gdb есть такая замечательная штука, как обратная отладка. Когда в конце-концов заставляешь это работать, перестаёшь понимать, как без этого жил раньше.

i-rinat ★★★★★
()

Ещё хорошие инструменты для поиска багов — valgrind и address sanitizer (начиная с gcc 4.8).

i-rinat ★★★★★
()

ИМХО QtCreator самое оно для начала, он отлично умеет показывать строки, контейнеры и прочие вещи из коробки. Под линухом вроде поддерживается только gdb, под виндой ещё можно юзать cdb.
Хотя, голый gdb, лучше мозги прочищает, ещё есть такое поделие как cgdb, это gdb, с ui на curses, средний вариант между голым gdb и каким то графическим фронэндом.

batbko
()
Ответ на: комментарий от raymank26

Всегда дебажил без gui. Ради интереса поставил ddd. Я прямо вернулся в 90-е, будет время - обязательно посмотрю.

вообще ddd один из самых продвинутых дебаггеров, которые я видел. Хоть и выглядит очень страшно.

dikiy ★★☆☆☆
()
Ответ на: комментарий от Eddy_Em

По-моему, так намного проще, чем с этими непонятными gdb возиться.

Макросы с логгированим везде заранее не поставишь, а если будешь ставить слишком много на запас, то сильно захламишь код. Голый gdb, конечно, не подарок, но к нему можно писать скрипты с помощью которых можно иметь какие угодно трейсы и когда угодно.

mashina ★★★★★
()
Ответ на: комментарий от Andersen

а к нему еще и гуй есть - ddd, вполне удобная вещь

он настолько ужашен, что блевотные порывы мешают работать

mashina ★★★★★
()
Ответ на: комментарий от raymank26

Хех, внешний вид у него, конечно же, ещё тот, но программа годная.

AlexKiriukha ★★★★
()
Ответ на: комментарий от dikiy

вообще ddd один из самых продвинутых дебаггеров, которые я видел.

Я его использовал только для display/undisplay, но потом как-то скатился на простой gdb. Может у ddd есть ещё какая-то фича, из-за которой стоит снова переползти на него?

i-rinat ★★★★★
()

почитай книги Метт Телес «Искуство отладки»
Джесс Либерти «Отладка приложений»
все есть в великом гугле

anonymous
()
Ответ на: комментарий от i-rinat

ну собсно очень удобное окно display. А так же ассемблерный код тоже удобно в нем отлаживать. Я голым gdb как-то не пользовался.

dikiy ★★☆☆☆
()

незнаю что у тебя за дистрибутив, но если не устраивает ddd & gdb попробуй edb

anonymous
()
Ответ на: комментарий от i-rinat

Очень круто. Жаль, для отладки через JTAG это реализуют нескоро или вообще никогда.

prischeyadro ★★★☆☆
()

«Why programs fail? A guide to systematic debugging» автора не помню, но оно должно легко гуглиться

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от Andersen

а к нему еще и гуй есть - ddd, вполне удобная вещь

Nemiver лучше.

NaN
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.