Ik heb GDB geïnstalleerd op Mac OS X en om te testen of het werkt, heb ik dit volgende C-programma gebruikt.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int *my_array = (int *) malloc(5 * sizeof(int));
int i;
for (i = 0; i < 1000000; i++) {
my_array[i] = i;
}
free(my_array);
return 0;
}
Ik heb een fout bij het compileren, wat normaal is (segmentatiefout)
Echter, wanneer het toevoegen van de vlag -gin het compileercommando en het uitvoeren van gdb op mijn gecompileerde programma, krijg ik dit bericht na het starten van het commando run
During startup program terminated with signal ?, Unknown signal.
Weet echt niet waar het vandaan komt. Ik heb een certificaat toegevoegd om ervoor te zorgen dat gdb correct werkt op OS X, maar ik heb niets gevonden om dit probleem op te lossen.
Antwoord 1, autoriteit 100%
Als je Sierra gebruikt, is dat te verwachten.
GDB is niet compatibel met macOS Sierra, zelfs niet met de laatste release (7.12).
Misschien moeten we wachten op een nieuwe release van GDB of op een nieuwe update voor macOS om de bug te verhelpen.
Antwoord 2, autoriteit 90%
Van dit antwoord: https://stackoverflow.com/a/40437725/1060955
Zo heb ik het probleem eenvoudig opgelost. [Update: op basis van ontvangen en nog te verifiëren feedback lijkt het erop dat deze oplossing werkt met macOS Sierra 10.12 maar niet met macOS Sierra 10.12.2]
Bekijk hier video-instructies
GDB afsluiten
Uw teksteditor gebruiken, b.v. Sublieme tekst, sla een bestand op met de naam “.gdbinit” [Sluit de aanhalingstekens uit] in uw gebruikersmap.
Voeg het volgende toe aan het bestand: “set startup-with-shell off” [Sluit de aanhalingstekens uit]
Bewaar het bestand
gdb zou nu moeten werken
Bronnen
https://stackoverflow.com/a/40437725/1060955
https://discussions.apple.com/thread/7684629? start=0&tstart=0
Waar bevindt zich .gdbinit en hoe kan ik het bewerken?
https://sourceware.org/gdb/onlinedocs/gdb/Starting.html
Antwoord 3, autoriteit 37%
Ik heb gdb geïnstalleerd via Homebrew.
Aan het einde van de installatie staat:
Op 10.12 (Sierra) of later met SIP moet u dit uitvoeren:
echo "set startup-with-shell off" >> ~/.gdbinit
Dit was nodig om het te laten werken. Ook moest ik ervoor zorgen dat de .gdbinit
was ingesteld in de Eclipse Debug-configuratie
Antwoord 4, autoriteit 19%
Voor mij werkte het perfect op MacOS Sierra versie 10.12.4door gewoon gdb te verwijderen en te installeren als,
- GDB verwijderen
$ brew uninstall gdb
- GDB installeren
$ brew install gdb
Hiermee wordt de nieuwste gdb geïnstalleerd die compatibel is met MacOS Sierra.
Ik hoop dat iedereen hier iets aan heeft!
Antwoord 5, autoriteit 7%
Sierra (10.12) lijkt gdb
niet te ondersteunen. Ik heb geprobeerd een zelfstudie te volgen waarbij ik een certificaat moest maken. Daarna, toen ik gdb
uitvoerde, kreeg ik dezelfde foutmelding.
Apple gebruikt lldb
. Het werkt goed en kan worden geïntegreerd met Eclipse, is mij verteld. Hier is een link.