Format ścieżki symboli NT
Próbuję używać windbg więcej i ciągle mam problemy z cache symboli. Nie jest dla mnie jasne, jaki ma być format napisu.
Mam kilka wymagań:
- Użyj serwera Microsoftu http://msdl.microsoft.com/download/symbols
- użyj symboli z naszego oprogramowania, które są archiwizowane w \ \ foo \ Build1234]}
- użyj lokalnego bufora w c:\dev\symbols
Archiwum symboli z naszej rozproszonej budowy na \\foo \ Build1234 nie są zorganizowane jako serwer symboli. Jeśli dobrze to Rozumiem, muszę użyć słowa kluczowego cache.
Biorąc pod uwagę te wymagania, czy wygląda to jak odpowiednio sformatowana ścieżka srvpath:
cache*\\foo\Build1234;srv*c:\dev\symbols*http://msdl.microsoft.com/download/symbols
Edit:
Właśnie zacząłem czytać zaawansowane debugowanie systemu Windows i źle zinterpretowałem, jak działa słowo kluczowe cache. Myślałem, że to sposób na powiedzenie debugerowi, że folder jest tylko folderem plików, a nie serwerem symboli. Po tym jak Michał opuścił swój komentarz, ponownie przeczytałem sekcję i widzę, że rzeczywiście działa tak, jak opisywał Michał.
Teraz jestem zdezorientowany, kiedy używasz; lub * do oddzielania ścieżek / adresów URL. I kiedy potrzebujesz prefiksu srv*. W pomocy online dla windbg podali ten przykład:
\\someshare\that\cachestar\ignores;srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols;cache*c:\mysymbols;\\anothershare\that\gets\cached
Symbole z \ \ someshare nie są buforowane, symbole z Microsoft są buforowane w c:\mysymbols, oraz c:\mysymbols jest używany jako cache dla innych ścieżek po prawej stronie dyrektywy cache*.
Okazjonalne użycie srv* nie rozumiem, dlaczego pierwsza i ostatnia ścieżka nie są poprzedzone srv*.
Edytuj 2:
To powoli zaczyna mieć dla mnie sens. Dyrektywa srv jest używana dla serwerów symboli, a nie dla zwykłych katalogów symboli. Tak więc, wierzę, że odpowiedź na moje pierwotne pytanie jest taka:\\foo\Build1234;cache*c:\dev\symbols;srv*http://msdl.microsoft.com/download/symbols
2 answers
SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;\\foo\build1234
Powinno działać poprawnie, jeśli \\foo\build1234
jest po prostu płaski. Cache nie jest tu potrzebny; wystarczy dodać katalog do swojej ścieżki symboli.
Słowo kluczowe pamięć podręczna określa, gdzie chcesz buforować pliki symboli i jest przydatne do buforowania symboli lokalnie z nieindeksowanych udziałów (np. \\foo\build1234
)
cache*C:\dev\symbols;SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;\\foo\build1234
Powyższa ścieżka przechowywałaby symbole z serwera symboli MS i twój udział symboli na komputerze lokalnym w C:\dev\symbols.
Aby debugować problemy z symbolami za pomocą windbg, do
!sym noisy
.reload <some exe or DLL in your session>
A potem wykonaj jakąś akcję, która wymusiłaby załadowanie PDB. Zobaczysz, gdzie windbg szuka plików, a jeśli odrzuci PDB, dlaczego to zrobił.
!sym quiet
Spowoduje wyłączenie monitów o symbolach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-02 20:13:33
Oto szczegółowy post na temat debugowania problemów z ładowaniem symboli.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-11 07:39:58