Отладка аспектов рабочего процесса разработки Visual Studio против разработки "Linux"? - PullRequest
0 голосов
/ 11 ноября 2010

ОК, так что вокруг множество вопросов: «Эквивалент Visual Studio для Linux» или вариант этого вопроса. ( здесь , здесь , здесь , ...)

Я хотел бы сосредоточиться на одном аспекте и спросить, как рабочий процесс отладка может отличаться в разных системах, в частности, полностью интегрированный IDE-подход, используемый системами Visual Studio (например), и, возможно, более " отдельный «ориентированный на инструментарий подход».

Для этого позвольте мне представить краткое описание «рабочего процесса отладки Visual Studio»:

  • Учитывая существующий проект
  • Я открываю проект (один шаг с точки зрения пользователя)
  • Я перехожу к коду, который хочу отладить (возможно, путем поиска файлов моего проекта, что просто делается путем открытия диалогового окна Поиск в файлах .)
  • Я ставлю точку останова в строке (a), просто наведя курсор на строку и нажав F9
  • Я поместил «точку трассировки» в строку (b), добавив туда точку останова, а затем изменив свойства точки останова, чтобы отладчик не останавливался, а вместо этого отслеживал значение локальной переменной.
  • Я нажимаю F5, который автоматически компилирует мой исполняемый файл, запускает его под отладчиком и затем я жду, пока prg не остановится на (a), в то же время контролируя окно трассировки для вывода (b)
  • Когда отладчик наконец останавливается на (a), мой экран автоматически показывает мне следующую информацию в (одноразово предварительно сконфигурированных окнах) одновременно :
    • Текущий стек вызовов
    • значения последних измененных локальных переменных
    • загруженные модули (DLL)
    • список всех активных точек останова с указанием их местоположения
    • окно с последними введенными мною выражениями
    • Окно памяти для проверки необработанного содержимого памяти
    • небольшое окно, отображающее текущие значения регистра

Плюс / минус некоторые функции, это то, что я ожидал бы и в Eclipse / CDT под Linux. Как можно получить этот рабочий процесс и представленную информацию при разработке с VIM, Emacs, gdb / DDD и т.п.?

Этот вопрос на самом деле не о том, имеет ли какой-либо инструмент одну функцию или нет, а о том, чтобы увидеть, что работа по разработке / отладке использует комбинацию функций и что у вас под рукой множество опций и как вы получаете доступ к этой информации, когда не используете полностью интегрированную IDE.

1 Ответ

2 голосов
/ 11 ноября 2010

Я думаю, что ваш ответ не только о том, какое программное обеспечение вы используете, но и какую методологию вы используете. Я использую Emacs и зависит от TDD для большей части моей отладки. Когда я вижу, что что-то не получается, я обычно пишу тесты, заполняющие пробел, который я (очевидно) пропустил, и таким образом проверяю все ожидания. Так что каждый раз, когда я использую отладчик, все идет далеко друг от друга.

Когда я сталкиваюсь с проблемами, у меня есть несколько вариантов. В некоторых случаях я сначала использую valgrind, он может сказать мне, есть ли проблемы с памятью, устраняя необходимость в отладчике. Он будет указывать прямо на строку, где я перезаписываю или удаляю память, которую следует оставить в покое. Если я подозреваю, что состояние гонки у Вэлгринда это хорошо получается.

Когда я использую отладчик, я часто использую его прямо в emacs, в режиме GUD. Это даст мне представление со стеком, локальными переменными, исходным кодом, точками останова и окном, где я могу командовать отладчиком. Обычно это включает установку пары точек останова, просмотр некоторой памяти или оценки и пошаговое выполнение кода. Это очень похоже на использование отладчика в IDE. Отладчик GDB - мощный зверь, но мои проблемы никогда не были достаточно большими, чтобы задействовать его силу.

...