На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (5) [1] 2 3 ... Последняя » все  ( Перейти к последнему сообщению )  
> отладка приложения , отладчик он нужен или нет?
    привет чуваки с вами Сифон! :D
    скажите в каких случаях вы используете его ?
    лично я его уже давно не использую :D
    точнее я им даже не умею пользоваться, обычно я раскидываю ассерты и трассировочные месседжи и все. в последнее время ещё юзаю тесты типа Гугл.
    пс. наверное просто я не писал оочень сложных программ :writer:
    Сообщение отредактировано: Cfon -
      я так понимаю что отладчик нужен для трассировки ассемблерного кода, то бишь не для меня :D :D
        Отладчик нужен для пошагового исполнения программы, а не для трассировки ассемблерного кода. Вот будет у тебя баг в программе, так сразу про отладчик и вспомнишь.
          Цитата KILLER @
          Отладчик нужен для пошагового исполнения программы, а не для трассировки ассемблерного кода. Вот будет у тебя баг в программе, так сразу про отладчик и вспомнишь.

          баг это что логическая ошибка?
            Cfon, на самом деле отладчик позволяет экономить время. Поставил бряк и смотришь содержимое всех переменных и контейнеров, вместо того, чтобы самому организовывать вывод отладочной инфы.

            Добавлено
            Когда-то я и сам недооценивал пользу отладчика.
              Цитата Cfon @
              я так понимаю что отладчик нужен для трассировки ассемблерного кода

              Не обязательно. В отладчике удобно пошагово выполнять программу. А в какой-нибудь студии и вовсе можно руками точку выполнения перемещать в некоторых случаях. Очень удобно - никакой дебажный вывод даже рядом не стоит.
              Но в целом это от личных предпочтений зависит. Знаю странных людей, отлаживающих свои программы отладочным выводом и вроде со своими обязонностями справляющимися. Так что если тебя всё устраивает - не парься :)
                Цитата Cfon @
                пс. наверное просто я не писал оочень сложных программ

                Как раз, в случае сложных программ отладчик помогает слабо.

                А так, я вообще удивлён вопросом. Отладчик это незаменимая вещь - там можно смотреть переменные, перемещаться по стеку, смотреть память, отлавливать исключения и т.д. и т.п.
                Ты в чём программируешь?
                  Цитата Олег М @

                  Как раз, в случае сложных программ отладчик помогает слабо.

                  Почему? :huh:
                    Цитата KILLER @
                    Почему?


                    Попробуй поотлаживать программу, где у тебя больше одного потока. Например найти дедлок.
                      Когда то давно, когда я был маленький и глупый, я все время пользовался отладчиком MSVC, но однажды устроился работать в контору, которая писала под свое кастомное железо, и по каким то причинам ( уже не помню ) gdb было просто не собрать. С тех пор вся моя отладка это вывод в консоль, проблем не знаю никаких. + Как правильно подметили при отладке многопоточных приложений gdb пмомжет чуть менее чем никак ИМХО.
                        Цитата Painkiller @
                        Когда то давно, когда я был маленький и глупый, я все время пользовался отладчиком MSVC, но однажды устроился работать в контору,

                        Да и сама Микрософт не просто пользуется - просто злоупотребляет "OutputDebugString".
                        Прямо из студии прут часто бессмысленные сообщения.
                        NVidia тоже не гнушается.. да все практически используют.
                        А что делать в случае, когда остановить программу невозможно ?
                        Как посмотреть удалённо, что происходит с программой ?
                        Или как узнать, что происходит внутри микроконтроллера ?
                        Как только будут получены ответы на эти вопросы, выяснится, что потребность
                        в отладчике уже не такая срочная.
                        ---
                        А если дело дошло до отладчика уровня ядра, значит уже вляпались по самые уши.
                        Основная задача разработчика - это туда не попасть.
                        Сообщение отредактировано: ЫукпШ -
                          Цитата Олег М @
                          Попробуй поотлаживать программу, где у тебя больше одного потока. Например найти дедлок.

                          Пробовал, вроде получалось. Там когда на бряке останавливаешься - можно посмотреть стек, конкретного потока. Причем у меня один раз был случай, когда многопоточное COM приложение(сервер) упал нахрен и завис в дедлоке из за того, что в удаленном процессе выскочило исключение, оно вернулось на сервер, а сервер должен был записать сообщение об ошибке и грохнуть удаленного агента, но при записи сообщения в лог, произошла взаимоблокировка, вылетело еще одно исключение, в общем без отладчика - я бы никогда в жизни даже близко не понял бы где ошибка, а оказалось что ошибка была в локальной переменной логера, стоило сделать ее статической - как все проблемы исчезли. Без отладчика, я даже не додумался бы то место трейсить.

                          Хотя причем тут многопоточные приложения, когда ты написал про сложные программы. Многопоточная - еще не значит сложная.

                          Добавлено
                          Цитата Painkiller @
                          Как правильно подметили при отладке многопоточных приложений gdb пмомжет чуть менее чем никак ИМХО.

                          Да вы просто не умеете его готовить. В том же gdb можно вывести стек нужного потока, и хотя бы проследить цепочку вызовов. Отлаживать в консоль - пользуюсь таким оочень редко, иногда и консоли вообще нет, пользуюсь трасировкой в файл, но это только в тех случаях, когда отладка попросту бессмыслена(например баг с фокусами в GUI), там просто бесполезно что либо отлаживать.

                          Добавлено
                          Цитата ЫукпШ @
                          Как посмотреть удалённо, что происходит с программой ?

                          Remote Debugger тебе в помощь, причем ЕМНИП, такая штука есть довольно давно и в любом более менее отладчике поддерживается. Последний год именно удаленным отладчиком и отлаживаю клиентов на виртуальной машине. :-?

                          Добавлено
                          Вы еще приведите в пример - а как релизную сборку отлаживать отладчиком :-?
                          Сообщение отредактировано: KILLER -
                            Цитата KILLER @
                            Вы еще приведите в пример - а как релизную сборку отлаживать отладчиком


                            Там им хорошо исключения ловить. Если они вообще будут повторяться под отладчиком.
                              Цитата Олег М @
                              Там им хорошо исключения ловить. Если они вообще будут повторяться под отладчиком.

                              Да отлаживаться тоже как то не плохо. :-?
                                На самом деле, за последние годы средства отладки многопоточных приложений продвинулись очень сильно. Рассказывать сейчас лень и некогда, кому интересно -- гугл в помощь.
                                Сообщение отредактировано: shm -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0431 ]   [ 17 queries used ]   [ Generated: 23.04.24, 08:57 GMT ]