winsock2 - debugowanie biblioteki dll

0

Witam

Mam pytanie.

Czy orientuje sie ktos czy jest mozliwe debugowanie biblioteki dll pod Visual c++.

konkrety:

(winsock2 - LSP)

napisalem biblioteke posredniczaca pomiedzy warstwa podstawowego providera winsock a aplikacja na podstawie kodu zawartego w WindowsSDK.
Biblioteka znajduje sie w katalogu windows'a system32. Podczas odpalania przegladarki laduje sie odpowiednia bibiloteka a z niej funkcja dllmain. Niestety nie wiem co sie dzieje dalej.
Czy orintuje sie ktos moze czy istnieje jakas mozliwosc zdebugowania kodu tej bibioteki w momencie gdy jest ona ladowana przez jakas aplikacje (np Firefox, internet explorer itd...), tak bym mogl wiedziec jakie funkcje po kolei sie wlaczaja i jakie sa stany poszczegolnych zmiennych.

pozdrawiam,
MiloszeS</b>

0

Jesli chodzi o debugowanie to niestety Ci tutaj nie pomoge, ale jesli mial bym taka mozliwosc to do funkcji dodal bym elementy odpowiedzialne za logowanie do pliku nazwy funkcji, zawartosci zmiennych itp.

0

Spokojnie zrobisz to debuggerem Softice (z pakietu Driver Studio).
1)Spisujesz tylko adres funkcji,
2)uruchamiasz program korzystający z winsock,
3)odpalasz Softice zastawiasz na nim pułapkę (bpx) na funkcji z 1)
4)Odpalasz jeszcze raz ten program i Softice wywala ci się na początku funkcji. Teraz możesz sobie podejrzeć wszystko: rejestry, pamięć i kod programu.
Jeśli się jeszcze nim nie bawiłeś to poczytaj coś na ten temat, ale zasada obługi jest taka sama jak w reszcie debuggerów.

0

Wielkie dzieki :).

Bawilem sie z logowaniem na poczatku, ale idzie sie zajechac- za duzo kodu.
Jeszcze raz dzieki za pomoc.

pozdrawiam
MiloszeS

0

Witam.

Ten tekst moze byc troszke lamerski ;-) , ale byc moze pomoze on osobom majacym podobny problem. To jest bardzo lamerski sposob- moze znajdzie sie ktos bardziej zorientowany w temacie i napisze jakies male sprostowanie :)

Ja mialem problem z debugowaniem swojej biblioteki, poniewaz nie byla ona otwierana przez moj program lecz poprzez jedna z funkcji windows (pracuje nad LSP w winsock2).
Oto jak otwarlem tryb debugowania dla sowjej hbiblioteki pod Visual C++ (winXP).

Stworzylem blad ochrony pamieci (czytanie z adresu 0x0000....0) w swojej bibliotece. Odpalilem InternetExplorer i w pewnym momencie InternetExpl sie wysypal. Wtedy windows wywalil komunikat z pytaniem czy chce debugowac. Oczywiscie nalezy wcisnac przycisk debuguj. Nastepnie zamknalem projekt i na pytanie czy chce zapisac biezacy projekt rowniez odpowiedzialem twierdzaco. Ponownie otworzylem projekt (debugowanie InternetExplorer) i zaczalem go debugowac. Przechodzilem kolejne instrukcje assemblera do momentu gdy wisual zapytal mnie o kod do mojej biblioteki. Po wskazaniu katalogu w ktorym znajduja sie pliki zrodlowe, mogelm juz spokojnie zakladac plapki i debugowac swoja biblioteke.

Sorki za zamieszanie w tekscie, ale troszke mi sie spieszy. Postaram sie to napisac jasniej w wolnej chwili.

pozdrawiam
MiloszeS

1 użytkowników online, w tym zalogowanych: 0, gości: 1