Onbekend eindsignaal bij gebruik van debugger gdb

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 .gdbinitwas 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,

  1. GDB verwijderen

$ brew uninstall gdb

  1. 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 gdbniet te ondersteunen. Ik heb geprobeerd een zelfstudie te volgen waarbij ik een certificaat moest maken. Daarna, toen ik gdbuitvoerde, kreeg ik dezelfde foutmelding.

Apple gebruikt lldb. Het werkt goed en kan worden geïntegreerd met Eclipse, is mij verteld. Hier is een link.

Other episodes