Sdílet prostřednictvím


Spuštění programu

Uživatelé, kteří chtějí ladit program, mohou stisknutím klávesy F5 spustit ladicí program z integrovaného vývojového prostředí (IDE). Tím se zahájí řada událostí, které nakonec způsobí, že se integrované vývojové prostředí připojí k ladicímu stroji (DE), který je dále připojený nebo přiřazený k programu následujícím způsobem:

  1. Integrované vývojové prostředí (IDE) nejprve volá balíček řešení, aby získalo nastavení ladění aktivního projektu řešení. Nastavení zahrnuje počáteční adresář, proměnné prostředí, port, ve kterém se program spustí, a de, který se má použít k vytvoření programu, pokud je zadaný. Tato nastavení se předají ladicímu balíčku.

  2. Pokud je zadán de, funkce DE zavolá operační systém, aby program spustil. V důsledku spuštění programu se prostředí za běhu programu načte. Pokud je například program napsaný v jazyce MSIL, vyvolá se modul CLR pro spuštění programu.

    -or-

    Pokud není zadaný DE, port volá operační systém, aby spustil program, což způsobí načtení běhového prostředí programu.

    Poznámka:

    Pokud se DE používá ke spuštění programu, je pravděpodobné, že stejný DE bude připojen k programu.

  3. V závislosti na tom, jestli DE nebo port spustil program, DE nebo běhové prostředí pak vytvoří popis programu nebo uzlů a upozorní port, že program běží.

    Poznámka:

    Doporučuje se, aby prostředí za běhu vytvořilo programový uzel, protože programový uzel představuje odlehčenou reprezentaci programu, který lze ladit. K vytvoření a registraci programového uzlu není potřeba načíst celý de. Pokud je de navržený tak, aby běžel v procesu integrovaného vývojového prostředí, ale ve skutečnosti není spuštěné žádné integrované vývojové prostředí, musí existovat komponenta, která může přidat do portu programový uzel.

    Nově vytvořený program spolu s ostatními programy, souvisejícími nebo nesouvisejícími, spuštěnými nebo připojenými ze stejného integrovaného vývojového prostředí (IDE) vytvoří ladicí relaci.

    Programově, když uživatel poprvé stiskne klávesu F5, ladicí balíček sady Visual Studio volá balíček projektu (který je přidružený k typu spuštěného programu) prostřednictvím DebugLaunch metody, která pak vyplní VsDebugTargetInfo2 strukturu aktivním nastavením ladění projektu řešení. Tato struktura se předává zpět do balíčku pro ladění prostřednictvím volání metody LaunchDebugTargets2. Ladicí balíček pak vytvoří instanci správce ladění relace (SDM), který spustí laděný program a všechny přidružené ladicí moduly.

    Jedním z argumentů předaných do SDM je identifikátor GUID DE, který se má použít ke spuštění programu.

    Pokud GUID DE není GUID_NULL, SDM spoluvytváří DE a pak zavolá metodu LaunchSuspended ke spuštění programu. Pokud je například program napsaný v nativním kódu, IDebugEngineLaunch2::LaunchSuspended pravděpodobně zavolá CreateProcess a ResumeThread (funkce Win32) ke spuštění programu.

    V důsledku spuštění programu se načte běhové prostředí programu. Buď DE nebo běhové prostředí pak vytvoří rozhraní IDebugProgramNode2 k popisu programu a předá toto rozhraní AddProgramNode, aby oznámilo portu, že program je spuštěný.

    Pokud je předán GUID_NULL, port spustí program. Po spuštění programu běhové prostředí vytvoří IDebugProgramNode2 rozhraní pro popis programu a předá ho IDebugPortNotify2::AddProgramNode. Tím se upozorní port, že je program spuštěný. Potom SDM připojí ladicí modul ke spuštěné aplikaci.

V této části

Oznámení portu vysvětluje, co se stane po spuštění programu a oznámení portu.

Připojení po spuštění dokumentů, když je ladicí relace připravená k připojení DE k programu.

  • Úlohy ladění obsahují odkazy na různé úlohy ladění, jako je spuštění programu a vyhodnocení výrazů.