Visual Studio: горячая клавиша/способ войти в f() в операторе a() → f (b(), c(), d()) напрямую

В процессе отладки я в настоящий момент нахожусь в следующем (следующем) заявлении: -

system<System_Body>()->executeFracture(calculateFracture(data));
                       ^^1               ^^2

Как входить в executeFracture() или calculateFracture() напрямую и легко (без изменения кода)?

Hotkey? Расширение? Plugin?

Мои плохие решения

  • С F11 сначала нужно войти в system<System_Body>().
  • Я также могу перейти к источнику executeFracture() и нажать ctrl+F10 оттуда, но это не удобно.

Edit

MotKohn и TheUndeadFish рекомендуется использовать шаг в конкретном, спасибо!
Другой похожий поток (я только что нашел позже) сообщает, что его горячая клавиша Shift+Alt+F11.
Горячая клавиша делает всплывающие окна выбора приятными.

Изменить 2 (Причина Баунти)

Существующий ответ (TheUndeadFish) требует, чтобы я переместил мышь на правильный выбор во всплывающем окне.
(или нажмите вверх/вниз для выбора выбора)

Я желаю более удобного подхода, например.: -

  • Я нажимаю на слово calculateFracture, поэтому каретка (мигание |) перемещается к нему.
  • Затем я нажимаю какую-то горячую клавишу с помощью клавиатуры,
    VS немедленно перейдет в calculateFracture() .

Ответы

Ответ 1

Не горячая клавиша, но ближайшая вещь, которую я знаю, можно найти в меню правой кнопки мыши, когда ваш отладчик остановлен на строке строки кода. Вы должны найти запись в "Step Into Specific" с подменю, в котором вы можете выбрать все функции из этой строки.

https://msdn.microsoft.com/library/7ad07721(v=vs.100).aspx

Ответ 2

Shift + Alt + F11 - это глобальный ярлык по умолчанию для "Step Into Specific", который выведет контекстное меню всех методов, с помощью которых вы можете перейти от текущей инструкции.

Конечно, вы можете изменить ярлык с помощью меню Сервис- > Параметры- > Настроить...- > Диалоговое окно клавиатуры.

В противном случае нет функции, которая позволяет вам входить в конкретный метод под кареткой редактора. Похоже, хорошая идея, что вы должны положиться на uservoice для Visual Studio.

Ответ 3

Воодушевленный положительной обратной связью, я показываю еще одну возможность, используя разборку.

Как только отладка была запущена, разборку можно открыть в контекстном меню в виде исходного файла. Хотя разборки трудно читать (по крайней мере, для неопытных) некоторые факты полезны:

  • Выражения C/С++ смешиваются, а также символы для адресов.
  • Команда ассемблера для вызовов функций просто call.
  • Аргументы функции оцениваются в обратном порядке (начиная с последнего аргумента) относительно их обозначения в исходном коде.

Снимок отладки в VS2013

Играя с этим, я наблюдал следующее поведение:

  • Исходный код и разборка могут отображаться бок о бок.
  • Как только разборка была открыта во время отладки, она будет закрыта в конце отладки, но будет автоматически открываться в следующем сеансе отладки.
  • Ctrl + F10 работает также в сборке (важный факт, связанный с вопросом). Таким образом, каждый отдельный вызов функции в инструкции может быть рассмотрен.
  • Нажатие на исходное представление (т.е. фокус в представлении источника) активирует отладку исходного уровня, нажатие на дизассемблер активирует разборку.
  • Нажатие на разборку изменений "Авто" отображает регистры, но "Локальный" отображает локальные переменные, даже когда разборка активна.
  • Размещение разрывов в разборке - не очень хорошая идея. Кажется, что они ссылаются на адрес op-кода и, следовательно, становятся бесполезными, как только исходный код изменяется и (повторно) скомпилирован.
  • Когда отладка при разборке достигает кода, скомпилированного из другого файла исходного кода, представление исходного кода не обновляется автоматически. Однако в верхней части контекстного меню разборки есть команда "Перейти к исходному коду".