Oczywiście nie obyło się bez problemów. Po pierwsze, trzeba było odinstalować "Microsoft Visual C++ 2010 x86 Redistributable", aby w ogóle doprowadzić do instalacji (doprowadziły mnie do tego fail logi).
Po drugie nie wszystkie narzędzie z SDK rozpakowują się tam, gdzie to zostało wskazane, większość i tak wędruje do Program Files.
Interesują nas narzędzie dostępne w "Redistributable Packages" (czyli Microsoft Visual C++ 2010, Application Verifier, Debbuging Tools, Windows Performance Toolkit). Jednak SDK ściągnie jedynie instalatory. Nas interesują instalatory debbugera dla wersji 32 i 64 bitowej.
c:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\dbg_amd64.msi c:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\dbg_x86.msiMożna je zainstalować w dowolnej lokalizacji. Każda posiada odpowiednią wersję dbghelp.dll, która będzie nam potrzebna - można ją nawet przekopiować na USB (diagnostyczny) z innymi narzędziami sysinternals.
Niektóre z narzędzi (jak Process Explorer) potrafią pokazywać jakie biblioteki dll, są załadowane przez dany proces do pamięci. Przydać się mogę symbole debbugjące dostępne do Microsoftu. Ścieżki, gdzie będą przechowywane, można ustawić za pomocą poniższego skryptu. Ważne są też zmienne środowiskowe (które zdaje się, są również wykonywane przez inne tego typu programy). Magiczne SRV, z tego co zrozumiałem, ustawia przeszukiwanie najpierw w lokalnym katalogu, a jeżeli ich tam nie znajdzie, ściąga symbole z serwera i robi ich backup w lokalnym katalogu (działanie magicznych gwiazdek).
Symbols.cmd:
md c:\My md c:\My\Src md c:\My\Sym md c:\My\SymCache setx /M _NT_SOURCE_PATH SRV*C:\My\Src setx /M _NT_SYMBOL_PATH SRV*C:\My\Sym*http://msdl.microsoft.com/download/symbols setx /M _NT_SYMCACHE_PATH C:\My\SymCache pause
Drugi skrypt podawany przez autorów, służy do drukowania większej ilości detali (jeżeli dobrze zrozumiałem) - nie testowałem. Informacje na stronie mówią, że może to spowolnić wczytywanie symboli, więc warto włączać flagę tylko, gdy jest to uzasadnione.
DbgHelp_Logging.cmd:
rem msdn.microsoft.com/en-us/library/windows/desktop/ms680687.aspx md c:\My md c:\My\DbgHelp setx DBGHELP_DBGOUT 1 setx DBGHELP_LOG C:\My\DbgHelp\DbgHelpLog.txt pause
Brak komentarzy:
Prześlij komentarz