Как постоянно обновлять окно наблюдения VS2008 (без остановки выполнения)? - PullRequest
3 голосов
/ 10 мая 2009

В Adobe Director есть окно просмотра, которое обновляется во время работы моего приложения. Например, если у меня есть игровое приложение и я наблюдаю за экземпляром объекта ball, я вижу, как все его значения (скорость, высота, переменные состояния и т. Д.) Обновляются в реальном времени во время работы приложения. Я также могу добавить любой другой объект в окно и перейти к его переменным, не останавливая выполнение.

Есть ли способ в Visual Studio (я на 2008), в C #, чтобы обновить окно Debug> Watch во время работы моего приложения? Другими словами, я хотел бы следить за различными переменными данного объекта во время работы приложения, а не замораживать все и проверять состояние вещей в определенный момент времени.

Если это невозможно, есть ли способ наблюдать значения произвольных объектов (без их предварительного кодирования). Например, для объекта-танка у нас будет положение, ориентация, скорость и т. Д. Предположим, десятки различных типов игровых объектов имеют по дюжине или около того значений каждый. Эти значения меняются 60 раз в секунду.

Цель состоит в том, чтобы иметь возможность во время выполнения выбрать игровой объект для «наблюдения», а затем перейти к иерархии переменных (так же, как это делает панель наблюдателя). Опять же, этот инструмент не знает заранее об объектах, поэтому не может быть жестко закодирован для конкретных объектов.

Заранее спасибо!

Адам

Ответы [ 6 ]

1 голос
/ 14 октября 2009

Нет способа сделать это.

1 голос
/ 14 июля 2009

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

1 голос
/ 14 мая 2009

Если есть конкретное значение переменной, которую вы хотите отслеживать, вы можете использовать условную точку останова: http://msdn.microsoft.com/en-us/library/7sye83ce.aspx

И, конечно, для этого всегда есть надежный макрос ASSERT ().

Если у вас действительно сложные потребности в отладке, вам может понадобиться написать собственный код в вашем приложении только для отладки. Как правило, такие вещи помещаются в операторы #ifdef _DEBUG / # endif, так что сборки релиза не затрагиваются. Вы можете поддерживать все, от старого режима отладки файла журнала до написания собственного окна наблюдения, в котором отображаются текущие значения, которые вам нужно увидеть.

0 голосов
/ 11 августа 2009

Я не уверен, что можно настроить постоянное обновление окна просмотра отладки, как вы описали. Рассматривали ли вы использование макроса TRACE, который будет выводить содержимое на панель вывода при запуске приложения?

TRACE(_T("m_LocationX: %d\n"), m_LocationX);
TRACE(_T("m_LocationY: %d\n"), m_LocationY);

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


Редактировать 1: Если вы не используете MFC, взгляните на этот StackOverflow ответ , в котором объясняется альтернативный метод.

Редактировать 2: Снова глядя на этот вопрос, не ясно, используете ли вы C ++ или .Net. Если вы используете C #, то вы можете достичь аналогичного результата, используя Debug и Trace классы - хорошую статью с описанием их использования можно найти здесь .

0 голосов
/ 10 мая 2009

Мне не известен способ наблюдения без вмешательства в отладчик, однако вы можете использовать несколько разных подходов. Я бы лично использовал трассировку для этого с Trace.Writeline или чем-то подобным (я использую собственную библиотеку). Однако вы также можете получить быстрое решение, используя Tracepoints, которые являются точками останова, которые выводят контент в окно вывода.

У меня был краткий гугл, и эта статья , кажется, дает обзор того, как их устанавливать, вы помещаете имена переменных в {}, и они выводятся в окно вывода, по-видимому, без разбивки отладчик (хотя за кадром это именно то, что он делает)

Надеюсь, что поможет

0 голосов
/ 10 мая 2009

Это может помочь:

http://msdn.microsoft.com/en-us/library/z4ecfxd9.aspx

Чтобы включить или отключить автоматическую оценку свойств

  1. В меню Сервис выберите пункт Параметры.
  2. В диалоговом окне «Параметры» откройте узел «Отладка» и нажмите «Общие». В зависимости от настроек IDE может потребоваться выбрать «Показать все». настройки, чтобы увидеть узел отладки.
  3. Установите или снимите флажок Включить оценку свойства и другие неявные функции вызовов.
  4. Нажмите ОК.
...