Добавить запись в список при отладке в Visual Studio
У меня есть точка в моем коде, где я добавил точку останова. То, что я хотел бы сделать, когда отладчик останавливается в точке останова, - это изменить содержимое списка (в частности, в этом случае я хочу добавить записи). Как изменить содержимое списка во время отладки?
Изменить: Список представляет собой список строк.
Ответы
Ответ 1
Используйте немедленное окно (по умолчанию CTRL + D, я с ключевыми словами С# или в меню Debug > Windows).
Оттуда просто вызовите myList.Add(foo)
, он вернется, сказав, что выражение было оценено и не имеет значения, но возникает побочный эффект добавления foo.
Ответ 2
Также в окне просмотра вы можете выполнять однострочные операторы (или лучшее выражение).
Просто напишите что-нибудь вроде:
myList.Add("myNewValue")
и нажмите ENTER
Он должен работать (по крайней мере, всегда работал у меня)
Ответ 3
Существует метод, который вы можете использовать для ввода кода из точки останова. Это легко, и это работает.
- Установить точку останова
- Щелкните правой кнопкой мыши точку останова и выберите "условия"
- Поместите свою строку кода в условие (ему не нужно возвращать bool)
- Run
Когда ваша точка останова будет удалена, код будет выполнен, и отладчик НЕ остановится в точке останова (потому что вы не вернули bool).
Я получил этот совет из блога подсказок 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();
}
Если вы запустите этот код как есть, вы получите исключение. Однако перед тем, как вы это сделаете, добавьте точку останова в строку hte Console.WriteLine().
Щелкните правой кнопкой мыши точку останова и выберите "условия",
В диалоговом окне условия добавьте следующий код:
l.Add("hello")
Теперь запустите.
Очевидно, что человек может столкнуться с множеством проблем с этой "функцией" - вы можете изменить поведение своего приложения с помощью точек останова, так что независимая сборка кода ведет себя иначе, чем когда она запускается на вашем компьютере в ваш отладчик. Поэтому будьте очень осторожны...