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í připojení integrovaného vývojového prostředí k ladicímu modulu (DE), který je připojený nebo připojený k programu následujícím způsobem:

  1. Integrované vývojové prostředí (IDE) nejprve volá balíček projektu, aby získalo aktivní nastavení ladění 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.

    nebo

    Pokud není zadaný de, port volá operační systém, aby spustil program, což způsobí načtení prostředí za běhu 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 prostředí za běhu pak vytvoří popis programu nebo uzel a upozorní port, že je program spuštěný.

    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 ladění prostřednictvím volání LaunchDebugTargets2 metody. 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 identifikátor GUID de není GUID_NULL, SDM spoluvytváří DE a pak zavolá jeho LaunchSuspended metoda 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. De nebo běhové prostředí pak vytvoří IDebugProgramNode2 rozhraní pro popis programu a předá toto rozhraní AddProgramNode , aby oznámil port, že je program spuštěný.

    Pokud GUID_NULL je tento port předán, spustí se program. Po spuštění programu vytvoří prostředí IDebugProgramNode2 za běhu 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 port se oznámí.

Připojení po spuštění dokumentů, když je ladicí relace připravena 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ů.