Visual Studio ::: Вы когда-нибудь использовали окно памяти для отладки? - PullRequest
1 голос
/ 02 сентября 2010

Вы когда-нибудь использовали окно памяти для отладки?Если да, можете ли вы предоставить некоторые сценарии?

Спасибо

Ответы [ 4 ]

3 голосов
/ 02 сентября 2010

Я использую это все время.

Некоторые конкретные примеры того, что я делаю там:

  • Как только я заподозрил повреждение памяти, просмотрите куски памяти, чтобы увидеть, если они изменяются, когда не ожидаются. Обычно это сопровождается точкой останова данных довольно быстро.
  • использовать различные представления памяти для реинтерпретации целых массивов данных (особенно полезно для массивов союзов).
  • манипулирует бинарным файлом моего exe-файла (обычно для того, чтобы исключить то, что не представляет непосредственного интереса для моей отладки. Чаще всего это делается на сторонних dll)
3 голосов
/ 02 сентября 2010

Я часто использовал его, когда работал с инструкциями SSE и SSE2. Существуют эквиваленты C ++ для инструкций ассемблера, которые принимают переменные вместо простых регистров. Это значительно упростило программирование.

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

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

3 голосов
/ 02 сентября 2010

C ++ проект зависал или работал в зависимости от порядка включения операторов. Использовал окно памяти, чтобы взглянуть на структуры, к которым был получен доступ, и увидел, что они были выровнены в одной версии кода, но не в другой. Решение: сторонняя библиотека использовала в шапке пакет #pragma, иногда отменял позже, иногда нет.

3 голосов
/ 02 сентября 2010

Это наиболее полезно в неуправляемой (C ++) разработке, где вы, как правило, больше заботитесь о точном содержании памяти, чем при работе в .NET.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...