|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
Об отладке. Трассировка и более удобные инструменты.06.03.2012, 06:07. Показов 12540. Ответов 24
Метки нет (Все метки)
Я не профессиональный программист и пишу маленькие утилитки. 80% багов в утих утилитках я отлавливаю с помощью трассировки (вывода отладочных сообщений) остальные 20% это стандартный отладчик codegear. Для трассировки я написал себе маленькую утилитку и не пользую метод аля ShowMessage. Я не представляю как можно отлаживать проги иначе.
Но вот в чем для меня парадокс, почему то серьезные программисты не используют трассировку ( или на крайняк используют метод аля ShowMessage), как им удается обходится одним отладчик я не понимаю. Поискав в инете я так же не нашел ни одного нормального трасировщика. Скажите трассировка это что то не нужное и мало эффективное, и есть какие то более удобные инструменты?
0
|
|
| 06.03.2012, 06:07 | |
|
Ответы с готовыми решениями:
24
Удобные инструменты e-mail рассылки Удобные решения на C# для разработчиков БД Удобные сокращения программного кода |
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 07.03.2012, 14:32 [ТС] | |
|
Т.е. я так понимаю, что стандартные брейкпоинты, Watch List, и самописная ф-ция логирования в файл для вас являются верхом удобства и совершенства.
Все же продолжу. Приведу несколько инструментов которые можно использовать при отладке в билдере: -CodeSite - красивый логер, демку которого стали класть в стандартную поставку codegear. -AQTime - анализатор производительности. Показывает какие участки кода работает больше всех. И какой участок кода надо оптимизировать в первую очередь для повышения производительности -Системы управления версиями файлов (например Git). Можно использовать для откатов и выявления этапа работы на котором появился баг. Вопрос: может вы знаете какие то подобные инструменты которые можно использовать для отладки?
0
|
|
|
|
||
| 09.03.2012, 13:54 | ||
Программирование ведь не поэзия, имхо, есть правила, есть исключения из них - все строго и однозначно. Если их знать и к сведению принимать, то хитрые отладчики и не нужны - ведь я и сам знаю какой код и с какой частотой у меня исполняется, каких ресурсов требуют те или иные операции, как и где все это распределяется.
0
|
||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 09.03.2012, 17:31 [ТС] | |
|
BRcr, если это примитивный алгоритм, то вы правы, то конечно хватит примитивных инструментов. А если алгоритм более менее сложен, и скорость критична, то нет. Найти критичный по скорости кусок без спец. методов бывает очень сложно. Бывает, что единственный способ хоть какой то отладки это логи (причем реалтайм), а брейкпоинты и showmessage абсолютно бесполезны. Бывает что большие ф-ции (например перерисовки картинки) вызываются дважды подряд, и никогда ты это не заметишь ни в каких брейкпоинтах, только в логах.
Добавлено через 3 часа 16 минут И еще к вопросу о профессионализме (только без обид). Книга Киммел. Borland С++ 5.0. К сожалению не нашел в электронном виде, но я так перескажу, что там пишут про протоколирование. Уровни мастерства программиста: - Начальный: Использование обычных ф-ций (или классов) для отладочной печати. Их вызовы пишут и удаляют по мере надобности. В релизной компиляции надо ручками все вычищать. - Мнимый рост мастерства: Оборачивание вызовов обычных ф-ций (классов) из предыдущего пункта в #ifdef, #endif. В релизной компиляции можно отключить протоколирование закоментировав всего 1 строку. - Профессиональный: Использование макросов (макроопределений). А к какому пункту можно отнести ваши варианты?
0
|
|
|
|
|
| 09.03.2012, 22:56 | |
|
gumi250, ну, вот зачем так категорично?
Это ведь все сильно зависит от самого программиста, его личностных особенностей, правда?Кто-то найдет дублированные без надобности вызовы и не используя никакие логи, кто-то - нет. Кто-то предупредит их появление изначально вводом проверок на необходимость выполнения того или иного действия, так как он знает о возможности их появления, кто-то этого не сделает. Каждый из приведенных в этой теме способов отладки имеет право на жизнь, просто у каждого своя сфера применения. Не бывает ничего абсолютного, включая и описанную вами классификацию уровня программиста на основе применяемых им методов отладки; как правильно говорят: "Хороша ложка к обеду." - так же и логирование имеется смысл применять тогда, когда в нем есть реальная необходимость, которая зависит не столько от абстрактной "сложности" задачи, сколько от способностей программиста. Не по теме и шутки ради:
0
|
|
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 10.03.2012, 03:31 [ТС] | |
|
Приведенная классификация не моя а автора книги, и в ней идет речь только о логировании. Т.е. если делать логирование, то только через макросы!, а никак не через классы и ф-ции. Это не сложнее зато гораздо лучше.
Есть класс задач который лучше решить брейкпоинтами. Есть задачи который можно решать и логами и брейкпоинтами. Но есть класс задач которые без логирования решить оч. тяжело и это не зависит от вашего профессионализма. Применять к ним ваши методы бесполезно. Есть и другие задачи где удобней и нужней другие инструменты. Но гениям с Мозгами, всего этого не надо они ведь сразу пишут правильный код .Но вот например, как отлаживать многопоточные задачи (таких задач не мало)? Когда работает несколько потоков пошаговое выполнение программы будет идти кусами, то в одном потоке то в другом и отлаживать невозможно. Здесь ничего для отладки кроме логирования я не вижу, а что используете вы в этом случае?
0
|
|
| 10.03.2012, 03:31 | |
|
Удобные вкладки для контактов
Каким образом можно сделать удобные окошки?
Какие самые удобные графический библиотеки вы используете? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|