Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/64: Рейтинг темы: голосов - 64, средняя оценка - 4.78
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384

Об отладке. Трассировка и более удобные инструменты.

06.03.2012, 06:07. Показов 12540. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я не профессиональный программист и пишу маленькие утилитки. 80% багов в утих утилитках я отлавливаю с помощью трассировки (вывода отладочных сообщений) остальные 20% это стандартный отладчик codegear. Для трассировки я написал себе маленькую утилитку и не пользую метод аля ShowMessage. Я не представляю как можно отлаживать проги иначе.
Но вот в чем для меня парадокс, почему то серьезные программисты не используют трассировку ( или на крайняк используют метод аля ShowMessage), как им удается обходится одним отладчик я не понимаю. Поискав в инете я так же не нашел ни одного нормального трасировщика. Скажите трассировка это что то не нужное и мало эффективное, и есть какие то более удобные инструменты?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2012, 06:07
Ответы с готовыми решениями:

Удобные инструменты e-mail рассылки
Посоветуйте, как лучше сделать e-mail рассылку? Какие могут возникнуть проблемы и ошибки? Что касается базы, её формирую с помощью...

Удобные решения на C# для разработчиков БД
Эта статья посвящена маленькой, но очень частой проблеме разработчиков приложений БД. Вспомните, как часто у Вас по какой-то неведомой...

Удобные сокращения программного кода
Делаем код удобнее, красивее и короче:) Сложение: переменная += значение (i = 1 i += 1 i будет равно 2) ...

24
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
07.03.2012, 14:32  [ТС]
Студворк — интернет-сервис помощи студентам
Т.е. я так понимаю, что стандартные брейкпоинты, Watch List, и самописная ф-ция логирования в файл для вас являются верхом удобства и совершенства.
Все же продолжу. Приведу несколько инструментов которые можно использовать при отладке в билдере:
-CodeSite - красивый логер, демку которого стали класть в стандартную поставку codegear.
-AQTime - анализатор производительности. Показывает какие участки кода работает больше всех. И какой участок кода надо оптимизировать в первую очередь для повышения производительности
-Системы управления версиями файлов (например Git). Можно использовать для откатов и выявления этапа работы на котором появился баг.
Вопрос: может вы знаете какие то подобные инструменты которые можно использовать для отладки?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.03.2012, 13:54
Цитата Сообщение от gumi250 Посмотреть сообщение
Вопрос: может вы знаете какие то подобные инструменты которые можно использовать для отладки?
Да - мозг. Программирование ведь не поэзия, имхо, есть правила, есть исключения из них - все строго и однозначно. Если их знать и к сведению принимать, то хитрые отладчики и не нужны - ведь я и сам знаю какой код и с какой частотой у меня исполняется, каких ресурсов требуют те или иные операции, как и где все это распределяется.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
09.03.2012, 17:31  [ТС]
BRcr, если это примитивный алгоритм, то вы правы, то конечно хватит примитивных инструментов. А если алгоритм более менее сложен, и скорость критична, то нет. Найти критичный по скорости кусок без спец. методов бывает очень сложно. Бывает, что единственный способ хоть какой то отладки это логи (причем реалтайм), а брейкпоинты и showmessage абсолютно бесполезны. Бывает что большие ф-ции (например перерисовки картинки) вызываются дважды подряд, и никогда ты это не заметишь ни в каких брейкпоинтах, только в логах.

Добавлено через 3 часа 16 минут
И еще к вопросу о профессионализме (только без обид). Книга Киммел. Borland С++ 5.0. К сожалению не нашел в электронном виде, но я так перескажу, что там пишут про протоколирование. Уровни мастерства программиста:
- Начальный: Использование обычных ф-ций (или классов) для отладочной печати. Их вызовы пишут и удаляют по мере надобности. В релизной компиляции надо ручками все вычищать.
- Мнимый рост мастерства: Оборачивание вызовов обычных ф-ций (классов) из предыдущего пункта в #ifdef, #endif. В релизной компиляции можно отключить протоколирование закоментировав всего 1 строку.
- Профессиональный: Использование макросов (макроопределений).
А к какому пункту можно отнести ваши варианты?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.03.2012, 22:56
gumi250, ну, вот зачем так категорично? Это ведь все сильно зависит от самого программиста, его личностных особенностей, правда?
Кто-то найдет дублированные без надобности вызовы и не используя никакие логи, кто-то - нет. Кто-то предупредит их появление изначально вводом проверок на необходимость выполнения того или иного действия, так как он знает о возможности их появления, кто-то этого не сделает.

Каждый из приведенных в этой теме способов отладки имеет право на жизнь, просто у каждого своя сфера применения. Не бывает ничего абсолютного, включая и описанную вами классификацию уровня программиста на основе применяемых им методов отладки; как правильно говорят: "Хороша ложка к обеду." - так же и логирование имеется смысл применять тогда, когда в нем есть реальная необходимость, которая зависит не столько от абстрактной "сложности" задачи, сколько от способностей программиста.
Не по теме и шутки ради:
К слову, я затрудняюсь отнести предложенное мной в качестве варианта использование невооруженного мозга к какому-то пункту в описанной вами классификации.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
10.03.2012, 03:31  [ТС]
Приведенная классификация не моя а автора книги, и в ней идет речь только о логировании. Т.е. если делать логирование, то только через макросы!, а никак не через классы и ф-ции. Это не сложнее зато гораздо лучше.
Есть класс задач который лучше решить брейкпоинтами. Есть задачи который можно решать и логами и брейкпоинтами. Но есть класс задач которые без логирования решить оч. тяжело и это не зависит от вашего профессионализма. Применять к ним ваши методы бесполезно. Есть и другие задачи где удобней и нужней другие инструменты. Но гениям с Мозгами, всего этого не надо они ведь сразу пишут правильный код .
Но вот например, как отлаживать многопоточные задачи (таких задач не мало)? Когда работает несколько потоков пошаговое выполнение программы будет идти кусами, то в одном потоке то в другом и отлаживать невозможно. Здесь ничего для отладки кроме логирования я не вижу, а что используете вы в этом случае?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.03.2012, 03:31

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

Быстрые и удобные способы создания элементов
Много вложенных объектов, создаю блок, чтоб его потом заполнить циклом данными. Подскажите способы, как можно оптимизировать эти три...

Каким образом можно сделать удобные окошки?
Добрый вечер, господа форумчане. Интересно узнать, с помощью каких средств можно сделать удобные окошки (как в Visual Studio, или VMware,...

WPF: готовые удобные решения для MVVM
По мотивам последних рекомендаций, посоветуйте готовые решения под следующие критерии. * только 'PostSharp' и аналоги не советуйте,...

Какие самые удобные графический библиотеки вы используете?
Работая на python приходится встречаться с GUI библиотеками. Мне вдруг стало интересно, какие графические библиотеки самые хорошие,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Закрытая тема Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru