2013-05-28 20 views
7

Nadal jestem względną nowicjuszką z C++, i mam problem z biblioteką DLL innej firmy, do której statycznie łączę się z moją natywną biblioteką DLL w C++. Używam Visual Studio 2012 do debugowania mojego DLL.Co może WinDbg mi powiedzieć, że Visual Studio nie może?

(FWIW, DLL innej firmy jest Sybase Open Client, a ja debugowania DLL C# za pomocą pliku wykonywalnego Pisałem, który ładuje moje C++ DLL dynamicznie.)

Użyłem wizualna Studio, aby wkroczyć do demontażu i przejrzeć rejestry i użycie pamięci dla zewnętrznej biblioteki DLL. Visual Studio dało mi wiele dobrych informacji o tym, co dzieje się w moim procesie, ale wydaje mi się, że może tam być więcej niż to, co widzę, i być może łatwiejszy lub bardziej skuteczny sposób na uzyskanie tego.

Przeczytałem, że WinDbg jest bardzo potężnym narzędziem, ale potrzeba wiele czasu i wysiłku, aby nauczyć się go dobrze używać. Moje pytanie brzmi: czy warto się nauczyć używać WinDbg, czy narzędzia do debugowania w Visual Studio dadzą mi te same informacje?

+6

Spróbuj chodzić po stosach Windows w debugerze Visual Studio. Wtedy faktycznie * odnieść sukces * w ten sposób z WinDbg. – WhozCraig

+1

Skrypt WinDbg tak tajemniczy, jak jego składnia, może być potężny w porównaniu do tego, na co pozwala VS, chociaż być może z dodatkiem lub makrem można uzyskać podobną funkcjonalność w VS. – 0xC0000022L

+5

Wyszukiwanie wycieków pamięci, automatyczna analiza awarii, śledzenie wycieków, wyszukiwanie pamięci, możliwość łatwego zrzucania stosów wywołań wszystkich wątków, ustawianie/rozbrajanie pułapek po trafieniu punktów przerwania, debugowanie na komputerach, które nie mają zainstalowanej usługi VS, debugowanie .net, logowanie, skrypty, obsługuje pętle ... itd. Zasadniczo otrzymujesz lekki, bez debuggera BS, który ma mnóstwo narzędzi, które automatyzują bolesne zadania, które są albo trudne, albo niemożliwe przy użyciu VS, najwyższe poparcie, jakie zobaczysz, to to, że używa MS to do debugowania systemu Windows, stroma krzywa uczenia się, ale ostatecznie bardzo satysfakcjonujące – EdChum

Odpowiedz

3

Moje pytanie brzmi: czy jest to warte wysiłku, aby nauczyć się korzystać WinDbg, czy będzie narzędzia debugowania w Visual Studio daje mi bardzo podobnie informacji?

To naprawdę zależy od tego, jakiego rodzaju programujesz.

Program WinDBG umożliwia przeglądanie struktur wewnętrznych systemu operacyjnego. Umożliwia przeglądanie wątków i procesów w całym systemie oraz debugowanie kodu uruchamianego w jądrze systemu operacyjnego (na przykład sterowników). Istnieje znaczna umiejętność pisania skryptów w celu wydobywania pewnych informacji lub, jak sądzę, nawet pisania wtyczek uruchamianych w WinDBG w celu wykonywania określonych zadań.

Większość z nich jest albo trudna, albo niemożliwa z debugerem typu VS.

Jest prawie niemożliwe dla mnie lub kogokolwiek innego tutaj, aby powiedzieć, czy powinieneś nauczyć się używać WinDBG. Z pewnością nic ci nie będzie wiadomo, ale całkiem możliwe jest, abyś przez długi czas nie potrzebował tego.

Powiązane problemy