я обычно использую gdb, objdump, grep и простенький perl-парсер самопальный. Интересует, кто чем отлаживает свои *nix-проги?
bPED Мой бывший начальник говорил - отлаживает тот кто не умеет программировать, типо нужны логи и т.п. Это конечно верно, но отладчик как-то привычнее. А так конечно gdb, но грустно как-то им отлаживать.
bPED gdb + IDA Bender зависит от конечной цели даже если в команде есть и прекрасный проектировщик, и гениальный программист, и они создают продукт, хоть не много популярный, они всё равно столкнутся с необходимостью тестирования (тестировщик) и отладки, т.к. при популярности в 100 000 копий, они будут иметь дело с достаточно большим количеством систем, на которых их программа будет работать ... по-разному. Пришёл отчёт об ошибке (одна и та же ошибка у сотни пользователей - это .1%) по мнению твоего бывшего начальника это значит, что в отлаживать прогу и найти ошибку - не для тех, кто умеет программировать? При написании чего-то, что уже давным давно стало стандартом, проблем может и не возникнуть, а вот при создании "нового" или "неизведанного", без отладки обойтись тяжело. К тому же программист не всегда имеет дело только со своим кодом, так что отлаживать приходится, тем более, когда речь идёт о сетевых приложениях, когда на другом конце работает чужой код.
Jupiter Да нет, он имел виду что для этого должно хватать логов. И в этом есть смысл, у заказчика же нету отладчика, да он и не под ним запускает.
да. gdb довольно скучно. надоедает эти ni вводить постоянно. и регистры сразу не видно У меня как-то даже идея возникла сделать свой отладчик. Но быстро провалилась. Я не слишком хороший кодер Во всяком случае у меня в парсере на перле есть пара строк, типа для отладки. но дальше этого дело так и не пошло
rei3er уже в общем-то все написали. "скучный" и местами не очень удобный (ИМХО). а про отладку мой бывший начальник ничего такого не говорил
TermoSINteZ DDD лабуда. AshBone Не гони пургу. Коммерческий софт под никсы!!! Логи тут общепринято считаются, стандартом. Всё пишет в разного рода журналы. Такова реальность. Если программа упала у клиента, нужно только по логам понять причину. Это клиент серверные приложения, а не игры.
Booster Это ты "гонишь пургу". Отладка - это не только средство устранения ошибок, это еще и часть процесса разработки, заметно ее упрощающая... а вообще, хочешь отлаживать по логам? - ZF тебе в руки )
AshBone Ну я отладчик сосно и есно никак не отметаю. Но отладчиком и при разработке, далеко не всё просечёшь, особливо в клиент серверных прогах.
AshBone Легко. На заре программирования отладчиков вообще не было. -) В клиент серверах когда у тебя одновременно несколько сессий, и каждая сессия бъётся на фрагменты, посмотрю какой отладчик тебе поможет. Вообщем в nix, логи это суровая действительность и точка. Отладка для серъёзных приложений это баловство, и прерогатива Windows, в котором есть нормальные отладчики, но и там без логов для сложных распределённых систем ни как. Логи это и отладочный механизм и система мониторинга в боевых условиях, в одном флаконе. Уж поверь мне на слово, я в такой заднице был (в смысле кодинг под nix, клиент серверов), на все машины удалённым отладчиком лазать не будешь. А будешь кропотливо и вдумчиво пихать логи до посинения, чтобы потом опять их не пришлось пихать, и чтобы если у клиента упало, быть во все оружии. А отладчиком под nix, я действительно редко пользовался, потому как отловить им косяк в таких вещах довольно не просто, тут нужен перманентный мониторинг.
Jupiter Ты меня понял. Вообщем мой начальник имел ввиду логи и ещё раз логи, чтобы в отладчике не было необходимости. Но конечно не просто их сувать куда попало и как попало, а чтобы посмотрев в него можно было всегда понять причину, и думать, как ты потом сможешь через пару лет понять что произошло или нет.