2012-01-19 3 views
3

Я довольно часто добираюсь до состояния в контрольной точке или исключении отладки VS (C#), где я хочу выйти из нескольких уровней метода вызывающему на несколько уровней вверх по стеку. Затем я могу установить/повторить попытку/и т. Д.Отладка Visual Studio, переход к концу метода или метод вызова

В простых случаях я могу [1] найти конец текущего метода, [2] установить следующий оператор и [3] выйти. Затем повторите 1/2/3, прокладывая себе путь до вызывающего стека, пока я не получу место, где хочу. Тем не менее, это решительная боль ....

Может ли кто-нибудь предложить любую автоматизацию, чтобы помочь этому? В порядке предпочтения ....

  1. прыжок весь путь туда, где я хочу быть в один идти
  2. объединить 1/2/3 в один ярлык я могу быстро повторить
  3. просто автоматизировать шаг 1 (шаги 2 и 3 легко со стандартными ярлыками).

(Я пробовал поиск, но все термины, о которых я могу думать, настолько общие, что у меня нет полезных ответов).

+0

Не могли бы вы установить точку останова там, где вы не хотите, а затем нажать F5, чтобы продолжить выполнение до тех пор, пока эта точка не будет удалена? – user1231231412

+0

Возможный дубликат http://stackoverflow.com/q/229385/175679 – SliverNinja

+0

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

ответ

1

Отладчик не имеет возможности установить следующий оператор для выполнения где-то иным, чем текущий метод в верхней части стека.

+0

Снова, спасибо, но как с моим ответом на shift-F11. Это пытается выполнить все заявления во всех уровнях вызова промежуточного кода до тех пор, пока он не достигнет этой точки; но я хочу избежать выполнения этих утверждений. –

+0

Я обновил свой ответ –

6

Shift-F11 шаги из текущего метода.

+0

Спасибо за ответ. К сожалению, это устраняет текущий метод (мой шаг 2). НО он сначала пытается выполнить промежуточные утверждения в методе; который мой шаг 1 избегал. Ошибка, вызвавшая начальный разрыв, часто означает, что эти промежуточные утверждения тоже не будут работать, поэтому я хочу перейти непосредственно к требуемой точке на уровнях выше. –

Смежные вопросы