Aby utworzyć .out wykonywalny, muszę wpisać:Programowanie C: Jak używać gdb z Makefile i argumentami wiersza poleceń?
$: make
$: myprogram.out name.ged
Mój program zawiera argument wiersza poleceń, więc "name.ged".
Ilekroć uruchomić gdb po uzyskaniu winy segmentacji (rdzeń po cenach dumpingowych), wejdę:
$: gdb a.out core
(gdb): bt
Następnie użyj polecenia prześledzić wstecz i GDB powraca:
#0 0x4a145155 in ??()
#1 0x08a16ce0 in ??()
Próbowałem nawet użycie polecenia up t przesunięcie w górę stosu, ale wciąż nie ma szczęścia. Nie mogę powiedzieć, która linia w moim programie daje mi błąd seg. gdb współpracuje z moimi innymi programami, które nie wymagają pliku Makefile i argumentów poleceń, więc zastanawiam się, czy moje polecenia są niepoprawne.
potrzeby kompilacji z '-g' flagi. Ponieważ nie opublikowałeś Makefile, nie mogę ci pomóc. –
Więc czy polecenie brzmi gcc -g myprogram.out nazwa.ged? – Bonnie
W pliku make znajduje się polecenie kompilacji kodu (gcc ...) To polecenie wymaga flagi -g do dodania dodatkowych informacji dla gdb do efektywnego działania. –