Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Příznaky

Při zadávání názvu objektu objektu, který je umístěn na pevné adresy v okně kukátka v ladicím programu Visual Studio, zobrazí zpráva podobná následující:

není definován identifikátor název_objektu

Například tento problém lze reprodukovat po kompilaci a spouštění systému založené na x86 následující kód:

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;
}

Příčina

V dřívějších verzích sady Visual Studio ladicí program používá relativní adresy namísto absolutních adres pro všechny proměnné. To je způsobeno proměnné, které jsou umístěny na pevné adresy nelze nalézt v živé oblasti pro aktuální rámec zásobníku.

Řešení

Tato oprava se týká pouze aktualizace 3 pro aplikaci Visual Studio 2015. Pokud chcete zobrazit absolutní adresy, je nutné použít Visual Studio 2015 Update 3 nebo novější.

Oprava je k dispozici pro stahování Microsoft Download Center:

Stáhnout balíček oprava.

Tento soubor byl zkontrolován na výskyt virů, pomocí aktuální antivirový software, který byl k dispozici v den vydání souboru. Soubor je uložen na zabezpečených serverech, které pomáhají zabránit neoprávněné změny k ní.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×