Как изменить байты памяти в Visual Studio 2017? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь изменить байты в памяти, в окне памяти при отладке проекта C ++ в моей Visual Studio 2017. Окно памяти указывает на код, содержащий память, так как я пытаюсь быстро исправить часть кода ( просто нужно изменить значение параметра) без необходимости останавливать и перекомпилировать. Я также заметил, что вы не можете изменить значения в окне памяти даже для памяти данных. Есть ли какие-то скрытые настройки конфигурации, чтобы позволить вам это сделать. Это было возможно сделать в VS6.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

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

  1. Определите запасной глобальный указатель в вашем коде (вы можете фактически использовать любой указатель памяти в вашем коде, если вам все равно, что вы измените его значение) :

    char * memptr;

  2. Установить указатель в окне просмотра.

  3. Установить значение указателя по адресу памяти, который вы хотите изменить.
  4. Увеличьте содержимое (кстати, вы можете использовать «memptr, 100» в окне просмотра для доступа к более чем одному байту).
  5. Введите обновленный значение в ячейках израсходованных байтовых значений.

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

Это может быть int указатель или любой другой тип, или вы можете использовать приведение в окне просмотра, если вы хотите редактировать любые другие типы объектов.

Будьте осторожны, это может быть опасно, изменение памяти должно быть сделано с величайшей осторожностью.

0 голосов
/ 12 февраля 2020

Как изменить байты памяти в Visual Studio 2017?

Насколько я знаю, Microsoft не поддерживает изменение байтов памяти напрямую в последних Visual Studio, включая VS2017 , и такой скрытой опции для его реализации не существует.

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

Помимо , байты памяти изменяются со значениями переменных в отладчике windows, например в виде диалогов Watch, Autos, Local Variables и QuickWatch. Затем проанализируйте его изменения в использовании памяти, чтобы улучшить программу. Из-за этого мы не можем изменить его напрямую.

Кроме того, , больше информации об Окне Памяти, вы можете проверить этот официальный документ .

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