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

Симптомы

При вводе имени объекта, объект, расположенный по фиксированному адресу в окне « Контрольное значение » в отладчике 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 или более поздней версии.

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

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

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

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

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

ПРИСОЕДИНЕНИЕ К ПРОГРАММЕ ПРЕДВАРИТЕЛЬНОЙ ОЦЕНКИ MICROSOFT 365 >

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

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

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

×