Автор Гілка: Назвіть найкращій debugger  (Прочитано 2668 раз)

Відсутній XsID

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • ****x
Назвіть найкращій debugger
« : 2004-09-28 22:23:18 »
Вітаю!
Взагалі-то сабж.
Цікава річ - man'уальна терапія

Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Re: Назвіть найкращій debugger
« Відповідей #1 : 2004-09-29 12:40:57 »
/dev/brain

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3857
  • Карма: +13/-0
  • Програміст
Re: Назвіть найкращій debugger
« Відповідей #2 : 2004-09-29 14:56:10 »
DDD один з найкращих для gcc. Хоча часто вбудованого в IDE долбагера цілком достатньо.

А взагалі-то, автоматичні тести допомагають значно краще, ніж долбагер. (В основному юніт-тести, функціональні тести значно рідше). Зокрема,  є час спокійно почитати форум, поки виконується три тисячі тестів, замість того щоб довбати код вручну. :)
[Fedora Linux]

Відсутній XsID

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • ****x
Re: Назвіть найкращій debugger
« Відповідей #3 : 2004-09-29 23:11:40 »
А можна, будьласка, подробніше?
Цікава річ - man'уальна терапія

PoltawerKozak

  • Гість
Re: Назвіть найкращій debugger
« Відповідей #4 : 2004-09-29 23:22:39 »
Наскільки я зрозумів то певно виконати цикл в системній оболонці типу

$ for i in 10
> do
> programm <arguments> 2>&1 | tee test.txt
> done

а потім переглянути результати в файлі test.txt

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3857
  • Карма: +13/-0
  • Програміст
Re: Назвіть найкращій debugger
« Відповідей #5 : 2004-09-30 12:32:22 »
А можна, будь ласка, детальніше?
Про що саме? Про DDD чи про написання автоматичних тестів для власних програм?
[Fedora Linux]

Відсутній XsID

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • ****x
Re: Назвіть найкращій debugger
« Відповідей #6 : 2004-09-30 18:10:55 »
Вітаю!
Бажано про тести!
Цікава річ - man'уальна терапія

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3857
  • Карма: +13/-0
  • Програміст
Re: Назвіть найкращій debugger
« Відповідей #7 : 2004-09-30 18:52:40 »
Тести як тести - пишеш маленьку програмульку, яка щось робить і перевіряєш результат з тим, що має бути отримано, якщо програма вірна.

Наприклад тест на bash-і для програми, яка виводить "Hello, world!" може виглядати так:

#!/bin/bash
OUTPUT="`./program`"
if [ "x" !=  "xHello, world\!" ]
then
 echo "Wrong output of program, excpected \"Hello, world\!" but output is \"$OUTPUT\""
fi

і далі ковбасиш програму доти, поки тест не замовкне.

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

Потрібно писати такі тести, які валяться на помилковому коді, інакше від них немає користі. Для написання юніт-тестів зручно використовувати бібліотеку *unit (JUnit, CUnit, phpUnit, ect., в залежності від мови програмування).

Стратегія, коли спочатку пишеться тест, а потім код, називається Test Driven Programming і є частиною eXtreme Programming. Якщо в програмі знайшлася помилка, то зручно написати спочатку тест, який демонструє помилку в програмі, а потім ковбасити програму, поки помилка не зникне і всі інші тести теж працюватимуть нормально.

Коли здаватимеш програму, то тести дуже допомагають не на ламати дров у останній момент.

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

На Ґуґлі можна знайти більше інформації, і російською теж.

На якій мові пишем? Можливо я зможу навести приклади.
« Змінено: 2004-09-30 18:54:25 від lvm »
[Fedora Linux]

Відсутній XsID

  • Новачок
  • *
  • дописів: 36
  • Карма: +0/-0
  • ****x
Re: Назвіть найкращій debugger
« Відповідей #8 : 2004-10-08 01:37:04 »
Вітаю!
Взагалі не те що пишу.... але вивчаю С
Цікава річ - man'уальна терапія