Сопоставление методов в визуализации стека вызовов при отладке в Visual Studio
Для визуального отслеживания стека вызовов при отладке можно создать сопоставление кода. В это сопоставление можно вносить примечания для отслеживания операций, выполняемых кодом. Таким образом, вы сможете сосредоточиться на поиске ошибок.
Требуется:
Поддерживается отладка кода на таких языках, как Visual C# .NET, Visual Basic .NET, C++, JavaScript. Для визуализации кода, который совместно используется несколькими приложениями в одном решении, или кода X++ для Microsoft Dynamics AX в системе должна быть установлена версия Visual Studio 2013 с обновлением 2 или более поздней версии.
См. разделы Видеоролик: "Визуальная отладка с интеграцией отладчика сопоставления кода" (канал 9) • Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map • Q & A
Сопоставление стека вызова
Приступите к отладке. (клавиатура: F5)
При переходе приложения в режим приостановки выполнения или при входе в определенную функцию выберите Карта кода. (Сочетание клавиш: CONTROL + SHIFT + `).
Текущий стек вызовов выделен в новом сопоставлении кода оранжевым цветом:
Эта карта будет автоматически обновляться в ходе отладки. См. раздел Update the map with the next call stack.
Добавление примечаний к коду
Добавьте комментарии для отслеживания операций, выполняемых в коде. Чтобы добавить новую строку в комментарий, нажмите клавиши SHIFT + Return.
Обновление сопоставления путем добавления следующего стека вызовов
Выполните приложение до следующей точки останова или зайдите в функцию. В сопоставление будет добавлен новый стек вызовов.
Добавление связанного кода в сопоставление
Итак, сопоставление готово. Что дальше? При работе с Visual C#, .NET или Visual Basic .NET добавьте в него элементы, такие как поля, свойства и методы, для отслеживания операций в коде.
Дважды щелкните метод для просмотра его определения кода. (Сочетание клавиш: выделите метод в сопоставлении и нажмите клавишу F12)
Добавьте элементы, которые необходимо отслеживать в сопоставлении.
Нетрудно определить, какие методы используют одинаковые поля. Последние добавленные элементы отображаются зеленым цветом.
Продолжайте формировать сопоставление, чтобы увидеть дополнительный код.
Поиск ошибок с помощью сопоставления
Визуализация кода поможет вам быстрее находить ошибки. Например, предположим, что вы ищите ошибку в программе для рисования. Когда вы создаете линию и пробуете отменить ее создание, ничего не происходит до тех пор, пока не будет нарисована следующая линия.
Установив точки останова, вы начинаете отладку и создаете сопоставление, аналогичное представленному ниже:
Учтите, что все жесты пользователя в сопоставлении вызывают метод Repaint, за исключением undo. Возможно, именно поэтому функция undo срабатывает не сразу.
Когда вы исправите ошибку и продолжите выполнение программы, в сопоставление будет добавлен новый вызов из undo в Repaint.
Вопросы и ответы
Не все вызовы отображаются в сопоставлении. Почему?
По умолчанию в сопоставлении отображается только ваш код. Чтобы просмотреть внешний код, включите его в окне Стек вызовов или отключите режим Включить только мой код в параметрах отладки Visual Studio.
Изменение сопоставления влияет на код?
Изменение сопоставления никак не влияет на код. Можно свободно переименовать, изменить или удалить любой элемент в сопоставлении.
Что означает сообщение: "Диаграмма может быть составлена с использованием более старой версии кода"?
С момента последнего обновления сопоставления код мог измениться. Например, вызов в сопоставлении может уже не существовать в коде. Закройте сообщение, а затем попытайтесь повторить сборку решения, прежде чем повторно обновлять сопоставление.
Как управлять макетом сопоставления?
Откройте меню Макет на панели инструментов сопоставления:
Измените макет по умолчанию.
Чтобы остановить автоматическую перекомпоновку сопоставления, отключите режим Автоматически формировать макет при отладке.
Для минимальной перекомпоновки сопоставления при добавлении элементов отключите режим Последовательный макет.
Можно ли использовать сопоставление совместно с другими пользователями?
Сопоставление можно экспортировать, отправить его другим пользователям при наличии Microsoft Outlook или сохранить его в решении, чтобы можно было вернуть его в систему управления версиями Team Foundation.
Как не допустить, чтобы сопоставление добавляло новые стеки вызова автоматически?
Выберите на панели инструментов сопоставления. Чтобы вручную добавить текущий стек вызовов в сопоставление, нажмите клавиши CONTROL + SHIFT + `.
Существующие стеки вызовов по-прежнему будут выделяться на сопоставлении во время отладки.
Что означают значки элементов и стрелки?
Чтобы получить дополнительные сведения об элементе, просмотрите подсказку элемента. Можно также ознакомиться с разделом Легенда, чтобы узнать, что означает каждый значок.
См. разделы Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map