Potrzebuję wyjaśnień na temat działania GDB w środowisku IDE w chmurze9
Czy istnieją dwie rzeczy różne typy debugerów, które IDE środowisko?
-
Debugger, poprzez
debug
polecenie, które wygląda jak kompilacja krok po kroku / sprawdza dane wejściowe? (dla pliku źródłowego) -
GDB, który sprawdza program wykonywalny?
Ponadto, w jaki sposób przekazuje się argumenty do GDB? Wydaje się, że nie potrafię tego rozgryźć.
Patrzę na pset4 i chcę uruchomić GDB na pliku wykonywalnego „copy” i przekazać dane wejściowe oraz nazwę pliku wyjściowego
jak mam to zrobić w terminalu
EDYTUJ
także mój debugger też jest zawsze uszkodzony
Odpowiedź
Aby uruchomić GDB z argumentami w terminalu, użyj parametru –args.
gdb --args name arg1 arg2 arg3
debug50 (graficzny debugger) to po prostu GDB z GUI. GDB został pierwotnie zaprojektowany do uruchamiania przez terminal i nadal jest. Jest znacznie bardziej elastyczny niż jakikolwiek debugger graficzny.
- Oto kompletny przewodnik po GDB: https://sourceware.org/gdb/current/onlinedocs/gdb/
- A oto „ściągawka, którą znalazłem: https://cs.brown.edu/courses/cs033/docs/guides/gdb.pdf
Jednak oto kilka podstaw:
- Debugowanie krok po kroku:
next (or n)
-
Punkt przerwania jest ustawiany za pomocą
break (or b) [function or line number]
, na przykład:break main
lubbreak 20
gdzie „20” to linia do przerwania. -
Uruchom program z
run (or r)
. -
Użyj
continue or c
, aby przejść do następnego punktu przerwania. -
Aby wydrukować zmienną wewnątrz GDB (nie używając
printf()
), wpiszprint varname
.
Alternatywnie, gdy znasz już kilka poleceń, możesz uruchomić swój program z kilkoma argumentami za pomocą [r]un arg1 arg2 arg3
.
Jeśli chodzi o problemy z debug50, przykro mi to mówić, że poprzednik debug50 był zepsuty i wygląda na to, że debug50 jest teraz również uszkodzony. Przynajmniej nigdy nie udało mi się tego naprawić.
Komentarze
- dzięki za bardzo dogłębną odpowiedź !. Kolejne pytanie, czy GDB jest preinstalowany w niektórych środowiskach linux Bash i może w wierszu poleceń Windows?
- GDB jest preinstalowany w każdej dystrybucji Linuksa, o ile wiem, a na pewno w najpopularniejszych (arch, debian, ubuntu itp.). Aby uzyskać go w systemie Windows, być może będziesz musiał użyć Cygwin lub MinGW (kolekcji narzędzi i rzeczy Linux / GNU / POSIX). Nie ' nie wiem, czy " oficjalne " pobieranie ze strony pobierania GDB gnu.org/software/gdb faktycznie obsługuje windows, nie próbowałem '.