Jeg har brug for nogle præciseringer om, hvordan GDB fungerer i IDE-miljøet på cloud9
Er der to ting forskellige typer af debuggere, som IDE miljø?
-
Debugger, gennem
debug
kommandoindgang, der ser ud, trinvis trinkompilering / kontrollerer input? (for kildefil) -
GDB, som kontrollerer det eksekverbare program?
Hvordan overfører du argumenter til GDB? Jeg kan ikke synes at finde ud af dette.
Jeg ser på pset4 og vil køre GDB på den eksekverbare “kopi” og videresende et input og et outputfilnavn
hvordan skal jeg gøre det i terminalen
EDIT
også min debugger er også brudt
Svar
For at køre GDB med argumenter i terminalen skal du bruge parameteren –args.
gdb --args name arg1 arg2 arg3
debug50 (den grafiske debugger) er bare GDB med en GUI. GDB blev oprindeligt designet til at køre gennem terminalen og er det stadig. Det er meget mere fleksibelt end nogen grafisk debugger.
- Her “er en komplet referencevejledning til GDB: https://sourceware.org/gdb/current/onlinedocs/gdb/
- Og her “et snydeark fandt jeg: https://cs.brown.edu/courses/cs033/docs/guides/gdb.pdf
Her er dog nogle af de grundlæggende:
- Trin-for-trin fejlretning:
next (or n)
-
Indstilling af et brudpunkt foretages med
break (or b) [function or line number]
, for eksempel:break main
ellerbreak 20
hvor “20” er linjen, der skal brydes. -
Kør programmet med
run (or r)
. -
Brug
continue or c
for at springe til næste brydepunkt. -
For at udskrive en variabel inde i GDB (bruger ikke
printf()
) skal du skriveprint varname
.
Alternativt, nu hvor du kender et par kommandoer, kan du køre dit program med nogle argumenter med [r]un arg1 arg2 arg3
.
Hvad angår din problemer med debug50, jeg er ked af at sige, at debug50s forgænger var brudt, og det ser ud til, at debug50 nu også er brudt. Jeg har aldrig formået at ordne det i det mindste.
Kommentarer
- tak for det meget dybe svar !. Også et andet spørgsmål, er GDB forudinstalleret i nogle linux Bash-miljøer og måske windows kommandoprompt?
- GDB kommer forudinstalleret i enhver Linux-distribution, så vidt jeg ved, og bestemt i den mest populære (arch, debian, ubuntu , etc..). For at få det til Windows skal du muligvis bruge Cygwin eller MinGW (samlinger af Linux / GNU / POSIX-værktøjer og ting), jeg ved ikke ' om " officiel " download på GDB-download-siden gnu.org/software/gdb understøtter faktisk windows, jeg har ikke prøvet '.