2013-10-04 17 views
5

Nigdy nie użyłem debuggera i nadszedł czas, aby spróbować. MinGW wydaje się pochodzić z GDB, którego próbowałem użyć. Supposdly działa gdb z wiersza poleceń i wpisanie run myprog.exe uruchamia debugger, ale kiedy to zrobić otrzymujęW jaki sposób debugujesz program C w systemie Windows?

Uruchamianie programu: C: \ MinGW \ bin \ myprog.exe MyProg.exe [Nowy wątek] 1828.0xd8c otwarcia Error plik. [Gorszy 1 (proces 1828) zakończony kodem 02]

Jak postępować lub co jest prostszy sposób?

W szczególności staram się spłukać niezdefiniowane zachowanie.

Odpowiedz

1

Cóż, najprostszym sposobem byłoby użycie IDE, faktycznie. Możesz spróbować wypróbować - bardzo łatwe w użyciu, wszystko konfiguruje podczas instalacji (po prostu wybierz kompilator - nie przejmuj się, to podpowie ci) i gotowe, gotowe i gotowe iść. Ponieważ jest to platforma wieloplatformowa, tak naprawdę nie blokuje cię ona w oknach i daje ci bardzo potężne (i, co najważniejsze, wygodne) możliwości graficznego debugowania.

+0

Używam kodu blokującego i zgodnie z tym filmem z YouTube potrzebuję dodać plik do projektu przed użyciem debuggera na nim. Mam plik, ale bez projektu, jak dodać go do projektu? http://www.youtube.com/watch?v=6CGH9Z19dS8 – Celeritas

2

Od czasu zakończenia programu musisz ustawić punkt przerwania, aby cokolwiek zobaczyć. Wypróbuj break main przed linią run. Następnie możesz wykonać polecenie: linia next (następna linia), step (wywołanie funkcji/krok), print expression (gdzie wyrażenie może być nazwą zmiennej lub wywołaniem funkcji lub obliczeniem), display expression (tak samo jak drukowanie, ale drukuje tuż przed każdym monitem). W dowolnym momencie możesz wpisać backtrace, aby uzyskać stos połączeń. Można nawet wpisać up i down, aby przesunąć w górę stację wywoławczą, aby można było uzyskać wyższe lokalne zmienne.

+1

Zamiast 'break', użyj komendy' start' zamiast 'run'. – wallyk

1

przekazać plik binarny z gdb

gdb <binary> 

następnie ustawić punkt przerwania do głównej

gdb) break main 

Następnie należy uruchomić program w gdb

gdb) run 

następnie przełamać trafień punkt użyć 'n' lub "dalej", aby przejść do różnych linii:

gdb) n 

Wykorzystanie 's' dla wkraczającego funkcji drukowania i 'p' wartości var

Przykład:

gdb) s <fun_name> 
gdb) p x 
0

Proponuję, jako początkujący zaczynają z Visual Studio. Ma bardzo dobry i łatwy w użyciu debugger. Po prostu utwórz punkt przerwania w wierszu, z którego chcesz rozpocząć debugowanie (kliknij lewy pasek obok linii lub kliknij prawym przyciskiem myszy i utwórz punkt przerwania). Po ustawieniu punktów przerwania można po prostu uruchomić program w trybie debugowania, a wykonanie programu zatrzyma się w punkcie, w którym przerwa została utworzona.

W tym momencie powinieneś być w stanie wyświetlić wszystkie cenne informacje na temat wykonania programu. Możesz użyć klawisza F10, aby kontynuować krok wykonywania lub F11, aby przejść do drzewa wykonania.

Deweloper ma wiele innych zaawansowanych funkcji, takich jak stan włamania, liczba trafień itp., Ale możesz zacząć od podstawowej funkcjonalności.

+0

Proponuję, aby początkujący unikali wizualnego studio, takiego jak dżuma. To najgorszy debugger i środowisko programistyczne, jakie kiedykolwiek widziałem w całym moim życiu. Pliki blokują się stale (rzeczy w systemie Windows), pliki projektu są koszmarem do zarządzania, automatycznie wsuwa się i wychodzi z natywnych i innych trybów uniemożliwiając uderzenie w punkty przerwania, musisz mieć biblioteki DLL i pliki pdb do debugowania, analiza plików rdzenia jest po prostu zepsuty, system Windows ma stertę odporną na awarie, która ukrywa przed tobą awarie, aby wyglądała na bardziej niezawodną, ​​niż jest w rzeczywistości, dokumentacja jest nieprzydatna, funkcje są własnością itp. – Owl

Powiązane problemy