Jak najít a opravit chyby v komerčním softwaru v systému Windows

podle Wikipedie “ softwarová chyba je chyba, chyba, selhání nebo porucha v počítačovém programu nebo systému, která způsobuje nesprávný nebo neočekávaný výsledek nebo se chová neúmyslným způsobem a nakonec zhroutí aplikaci. Proces opravy chyb se nazývá „ladění“ a často používá formální techniky nebo nástroje k určení chyb .“

většinu času mohou být chyby reprodukovány ve vývojářském prostředí a opraveny před odesláním verze do výroby. Někdy však chyby závisí na konkrétním prostředí nebo profilu uživatelů – například pomocí speciálních znaků v názvu složky-což ztěžuje pochopení hlavní příčiny chyby. Nejhorší chyby budou vyžadovat uživatelskou podporu pro nastavení relace sdílení obrazovky, aby bylo možné sledovat, jak uživatel reprodukuje chybu.

v Dashlane používá tým Windows několik nástrojů k nalezení a reprodukci chyb:

  • technické protokoly na místě, kde se vyskytnou problémy, a pomáhají je opravit, někdy vyžadují několik iterací a interakci s uživatelem, který má problém
  • Microsoft Process Monitor and Process Explorer, dva bezplatné nástroje, které určují špatné instalace nebo poškozené prostředí

společnost Microsoft nedávno představila novou verzi jiného vývojářského nástroje WinDbg. Tato aplikace byla přenesena do UWP aplikace, je volně k dispozici na Microsoft Store, a je dodáván s velmi pěkné a užitečné funkce: TTD, nebo cestování v čase ladění. Přemýšlejte o době, kdy jste museli opravit velmi těžko reprodukovatelnou chybu, která se děla pouze na jednom konkrétním počítači. Nebo přemýšlejte o čase, který jste strávili instalací vývojářského prostředí na tomto počítači-pokud byste mohli. A pak přemýšlejte o tom, kolikrát jste museli spustit aplikaci v režimu ladění, abyste mohli reprodukovat chybu,a pak jste vynechali poškozený řádek náhodným zasažením F5 místo F11. TTD to promění v kus dortu, protože chybu musíte zaznamenat pouze jednou, abyste ji mohli znovu a znovu přehrát, vpřed i vzad.

ladění cestování v čase pomocí WinDbg

TTD je řešení zpětného ladění. Skládá se ze 3 kroků:

  1. Zaznamenejte aplikaci nebo proces na počítači, který dokáže reprodukovat chybu. Použijte WinDbg s administrátorskými právy a spusťte spustitelný soubor nebo připojte k již spuštěnému souboru, abyste zaznamenali jeho stopu. Výsledkem je soubor (.spustit rozšíření) obsahující všechny informace pro reprodukci chyby. Z tohoto důvodu jej v Dashlane můžeme použít pouze k ladění chyb, ke kterým dochází před přihlášením, abychom neshromažďovali citlivé informace uživatelů.
  2. přehrajte zaznamenanou stopu dopředu a dozadu tolikrát, kolikrát je to nutné k pochopení problému. Po načtení WinDbg vytvoří index stopy, který poskytuje úplné a rychlé vyhledávání paměti. Nahraný soubor lze načíst na libovolném počítači; obvykle se otevíráme na vývojářském počítači, kde můžeme načíst zdrojový kód a symboly PDB. Tímto způsobem můžeme přehrát stopu, když běžíme kód v našem IDE s procesními a paměťovými záznamy ze zaznamenaného počítače. (Ujistěte se, že zdrojový kód a symboly odpovídají zaznamenané verzi procesu.)
  3. analyzujte přidáním zarážek, spusťte dotazy k identifikaci běžných problémů s kódem a získejte plný přístup k paměti a místním obyvatelům, abyste pochopili, co se děje.

příklad

Předpokládejme, že jste napsali a vytvořili jednoduchou konzolovou aplikaci.

void GuiltyFunction(int a, int b, int c)
{
int x = a + b + c;
int y = 0;
y = x / b;
}
int main()
{
int a = 10;
int b = 0;
int c = 3;
GuiltyFunction(a, b, c);
return 0;
}

předpokládejme postavenou aplikaci (TestTTD.exe) a soubor symbolů (TestTTD.pdb) jsou v C:\TestTTD\bin, a zdrojový kód je v C:\TestTTD\src.

záznam

  1. otevřete WinDbg se zvýšenými právy.
  2. na kartě Soubor zvolte spustit spustitelný soubor (upřesnit). Do spustitelného pole zadejte C:\TestTTD\TestTTD.exe. Zkontrolujte proces záznamu pomocí ladění cestování v čase, nastavte výstupní adresář na zapisovatelnou a existující cestu a klepněte na tlačítko OK.
  3. jak aplikace havaruje, WinDbg uloží soubor trasování (.spustit rozšíření) a zaznamenává umístění Při načítání.
  4. zastavte debugger a otevřete umístění trasovacího souboru.

Replay

  1. Open WinDbg.
  2. na kartě Soubor vyberte Nastavení Na levém postranním panelu. Vyberte nastavení ladění, přidat C:\TestTTD\src do pole zdrojová cesta a C:\TestTTD\bin do pole Cesta symbolů. Klepnutím na tlačítko OK uložte změny.
  3. na kartě Soubor vyberte Otevřít soubor trasování a přejděte na soubor trasování vytvořený v kroku záznamu.

analyzujte

  1. jakmile je nahraný stopový soubor načten ve WinDbg, přidejte zarážku pro zastavení a analýzu stavu aplikace. Na kartě zdroj načtěte soubor skriptu a poté klikněte na levou stranu řádku požadovaného bodu přerušení. Hit F5 spustit do bodu zlomu.
  2. nyní hit F10 přejít, jako v Visual Studio ladění relace. Kliknutím na krok zpět spustíte zpět.

závěry

při ladění produkčního kódu a těžko reprodukovatelných chyb jsou WinDbg a jeho ladění cestování v čase skvělým nástrojem pro vývojáře, který může pomoci ušetřit čas a zdroje zaznamenáním vadné aplikace pouze v postiženém prostředí a dává vám možnost ji přehrát kdekoli. Pro více informací, navštivte Microsoft blog, nebo sledovat jejich demo na webových stránkách MSDN Channel 9.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.