Добавить запись в список при отладке в Visual Studio - PullRequest
14 голосов
/ 22 июня 2010

В моем коде есть точка, где я добавил точку останова. То, что я хотел бы сделать, когда отладчик останавливается в точке останова, это изменить содержимое списка (особенно в этом случае я хочу добавить записи). Как изменить содержимое списка во время отладки?

Редактировать: Список представляет собой список строк.

Ответы [ 3 ]

26 голосов
/ 22 июня 2010

Используйте непосредственное окно (по умолчанию сочетание клавиш CTRL + D, I с сочетаниями клавиш C # или оно находится в меню «Отладка> Windows»).

Оттуда просто вызовите myList.Add(foo), он вернется, сказав, что выражение было оценено и не имеет значения, но возникает побочный эффект добавления foo.

2 голосов
/ 22 июня 2010

Существует методика, которую вы можете использовать для внедрения кода из точки останова. Это легко и работает.

  1. Установить точку останова
  2. Щелкните правой кнопкой мыши точку останова и выберите «условия»
  3. Поместите вашу строку кода в условие (он не должен возвращать bool)
  4. Run

Когда будет достигнута точка останова, код будет выполнен, и отладчик НЕ остановится на точке останова (потому что вы не вернули логическое значение).

Я получил этот совет из блога советов по Visual Studio: http://blogs.msdn.com/b/zainnab/archive/2010/05/04/set-a-complex-breakpoint-condition-vstipdebug0022.aspx

Вот пример программы, которая иллюстрирует эту технику:


        static void Main(string[] args)
        {
            List l = new List();
            Console.WriteLine(l[0]);
            System.Console.ReadLine();
        }

Если вы запустите этот код как есть, вы получите исключение. Тем не менее, перед тем как это сделать, добавьте точку останова в строку Console.WriteLine ().

Щелкните правой кнопкой мыши точку останова и выберите «условия». В диалоге условий добавьте следующий код:

l.Add("hello")

Теперь беги.

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

2 голосов
/ 22 июня 2010

Также в окне просмотра вы можете выполнять однострочные операторы (или лучшее выражение).

Просто напишите что-то вроде:

myList.Add("myNewValue")

и нажмите ENTER Это должно работать (по крайней мере, всегда работал для меня)

...