Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Симптомы

При вводе имени объекта, объект, расположенный по фиксированному адресу в окне « Контрольное значение » в отладчике Visual Studio, появится сообщение, подобное приведенному ниже:

Идентификатор object_name не определен

Например эту проблему можно воспроизвести, компиляция и выполнение осуществляется в системе на базе x86 следующий код:

Relocate.asm
      .586
      .MODEL FLAT
      PUBLIC _fixed_struct
      _fixed_struct = 04000000h
      END

Main.cpp
#include <Windows.h>

#define SHM_ADDRESS 0x04000000
#define SHM_SIZE_BYTES 1024
#define SHM_NAME L"TEST_NAME"

extern "C"
{
   extern struct fixed_struct_type {
      int a;
      int b;
      int c;
   } fixed_struct;
}

void AttachShm()
{
   HANDLE mapfile = CreateFileMapping(
      INVALID_HANDLE_VALUE,  // current file handle (use System page file)
      NULL,                  // default security (not inheritable)
      PAGE_READWRITE,        // read/write permission
      0,                     // size of File (high-order doubleword)
      SHM_SIZE_BYTES,        // size of File (low-order doubleword)
      SHM_NAME);             // name of mapping object

   MapViewOfFileEx(
      mapfile,               // handle to mapping object
      FILE_MAP_ALL_ACCESS,   // read/write permission
      0,                     // address offset (high-order doubleword)
      0,                     // address offset (low-order doubleword)
      SHM_SIZE_BYTES,        // size of common block
      (LPVOID)SHM_ADDRESS);  // suggested starting address
}

int main(int argc, char* argv[])
{
   AttachShm();

   fixed_struct.a = 30;
   
   // Put a breakpoint on the next line, view fixed_struct.a in watch window
   return 0;
}

Причина

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

Решение

Это исправление относится только к Visual Studio 2015 обновления 3. Если вы хотите просмотреть абсолютные адреса, необходимо использовать Visual Studio 2015 обновления 3 или более поздней версии.

Исправление доступно для загрузки из центра загрузки Майкрософт:

Загрузить пакет исправления.

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

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

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×