Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använda /stacktraceonerror- och /minidumponerror-växlar
Det finns två sätt att samla in stackspår och minidumpar från dina tester. Det enklaste är 'onerror'-mode. När du kör dina tester anger du växlarna till '/stacktraceonerror' och/eller '/minidumponerror'. Om du stöter på ett fel, samlar Logger in stacktracen och/eller minidumpen åt dig i standardformatet.
Den andra metoden för att samla in stackspårning och minidumpar är att använda API:erna som beskrivs nedan.
Använda WexDebug.h-funktioner för att samla in stackspårningar och minidumpar
WexDebug.h tillhandahåller API:er för att samla in spårningar av anropsstackar och minidumpar.
Anropa SaveDump API för att spara en minidump.
Det här API:et tar en valfri DWORD-parameter (som är en kombination av dumptypsflagga eller flagga) och en strängreferens där den returnerar en sträng som innehåller ett filnamn och en sökväg till den sparade dumpfilen. Filnamnet genereras automatiskt av API:et och baseras på aktuellt datum och tid.
Parametern valfri dumptyp anger vad den tagna minidumpen ska innehålla. Den anger också om dumpen ska sparas i en dmp- eller cab-fil och, när det gäller cab-filer, om symbolerna ska sparas tillsammans med dumpen. Om den valfria parametern utelämnas används standardinställningarna.
Exempel (spara dumpen i en CAB-fil tillsammans med dess pdb-filer):
NoThrowString savedDumpFilePath;
HRESULT hr = Debug::SaveDump(MiniDumpFormat::WriteCab | MiniDumpFormat::WriteCabSecondaryFiles, savedDumpFilePath);
Observera att det tar längre tid att spara en dump i en cab-fil än att spara den vanliga dumpen; det tar ännu längre tid att bifoga symbolfiler.
Anropa GetStack-API:et för att hämta en spårning av anropsstack.
Det här API:et tar en valfri DWORD-parameter (som är en typflagga eller flaggkombination) och en strängreferens där den returnerar en sträng som innehåller anropsstackens spårning för den aktuella kontexten.
Parametern valfri stacktyp anger vad stackspårningen ska innehålla. Om den valfria parametern utelämnas används standardinställningarna.
Exempel:
NoThrowString stackText;
HRESULT hr = Debug::GetStack(CallStackFormat::ColumnNames | CallStackFormat::FrameAddress |
CallStackFormat::SourceLine, stackText);
Korrelation mellan stackalternativflaggor och felsökningskommandon. Om du använder windbg-serien med felsökningsprogram kan följande ungefärliga korrelationslista vara praktisk:
| Felsökningssyntax | Motsvarande flaggor |
|---|---|
| k | CallStackFormat::ColumnNames |
| kv | k + CallStackFormat::FunctionInfo |
| kp/kP | k + CallStackFormat::Parametrar |
| Kn | k + CallStackFormat::FrameNumbers |
| kf | k + CallStackFormat::FrameMemoryUsage |
Teknisk referens
Om du är intresserad av mer information om de valfria parametrarna dump och stack läser du dokumentationen med felsökningsverktyg för Windows. Dokumentation om dumpflaggor finns i DEBUG_FORMAT_XXX. Dokumentation om "stackflaggor" finns i OutputStackTrace.