-         

Ergebnis 1 bis 10 von 10

Thema: C++/Qt: Prozess nach Erhalt eines Signals vom Bet.-Sys. angehalten. Signal: SIGSEGV

  1. #1
    Trauerkloß
    Gast

    C++/Qt: Prozess nach Erhalt eines Signals vom Bet.-Sys. angehalten. Signal: SIGSEGV

    Anzeige

    Hallo,
    ich habe in C++ mit Qt ein Konsolenprogramm geschrieben.
    wenn ich jetzt was in das Konsolenprogramm reinschreibe und mit Enter abschicke, bekomme ich folgende Meldung:

    Der Prozess wurde nach Erhalt eines Signals vom Betriebssystem angehalten.
    Name des Signals: SIGSEGV
    Bedeutung: Segmentation fault.

    Wenn ich in der Meldung auf OK klicke bekomme ich eine Liste angezeigt. Über den Einträgen in der Liste steht "Function: libstdc". Eine Zeile in der Liste ist auch markiert:
    0x6fcc82b4 <+0x0000> mov -0xc(%eax),%eax

    ich weiß leider nicht weiter und bitte um Hilfe!

    danke!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.447
    du hast versucht in einen geschützten Speicher zu schrieben, da ist wohl irgendwie eine Dereferenzierung oder ein Pointer verbogen!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.271
    1. Starte das Programm doch mit dem Debugger, damit bekommst du sinnvolle Informationen
    2. Ein Segfault bedeutet, wie Ceos schon gesagt hat: Du hast in geschützten Speicher geschrieben. In der Regel passiert, dass weil man z.B. einen Null bzw. nicht allokierten Pointer versucht zu dereferenzieren. Es kann auch passieren wenn man über ein Array oder einen C-String herausschreibt. Also mehr Daten reinschreiben will als das Array lang ist.

  4. #4
    Trauerkloß
    Gast
    Danke für eure Antwortet. Ich musste es leider neu schreiben da ich den Fehler nicht gefunden habe.

    Ich habe da eine andere Frage. Wenn ich das Consolenprogramm beende (auf das X klicke), dann kommt folgende Meldung:
    "Der Gdb-Prozess wurde unerwartet beendet (0)"

    Wieso kommt das und wie verhindere ich diese Meldung?

    danke!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.271
    Die Meldung kommt nur duch den Debugger. Sobald du das Programm ohne Debugger ausführst kommt diese Meldung nicht mehr. Die Meldung deutet aber daraufhin, dass dein Programm unsauber terminiert.
    Zu dem Thema: https://doc.qt.io/qtcreator/creator-...r-engines.html
    https://doc.qt.io/qtcreator/creator-debugging.html

  6. #6
    Trauerkloß
    Gast
    Danke shedepe.

    Mit der Anweisung "Return 0;" bleibt die Meldung weg.
    Nur leider kann ich das nicht anwenden da das Consolenprogramm in einer Endlosschleife läuf, damit mehrere Datensätze angelegt werden können. Gibts da noch eine Möglichkeit?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.271
    1. Zeig Code wie soll man dir sonst helfen
    2. Wenn du eine Endlosschleife hast: Wie beendest du dann dein Programm ?

  8. #8
    Trauerkloß
    Gast
    shedepe, ich beende es mit dem X in der Titelleiste.
    Das funktioniert auch, nur bekomme ich jedes mal die Meldung "Der Gdb-Prozess wurde unerwartet beendet (0)"

    Die endlosschleife verwende ich, damit das Programm nicht gleich beendet wird. Ich will nämlich Daten eingeben (Kleidung)

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.271
    Wie gesagt: Wenn du das Programm mit dem Debugger startest kommt diese Meldung. Dein Klick auf das X sorgt nämlich nicht dafür dass das Programm sauber mit Exit Code 0 beendet wird, sondern beendet den Prozess mehr oder weniger gewaltsam. Du könntest .z.B. in deinem Programm eine Konsoleneingabe abfragen in der Endlosschleife und z.B. auf den Bustaben q oder die Zeichenfolge quit hin beenden.

  10. #10
    Trauerkloß
    Gast
    shedepe, so habe ichs auch getan. So kann man's stehen lassen

Ähnliche Themen

  1. Fourier Transformation eines Sinus Signals
    Von Kampi im Forum Kopfnüsse / Wissensquiz
    Antworten: 10
    Letzter Beitrag: 09.12.2013, 23:57
  2. Filterung eines Signals
    Von CamilloN im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 26.02.2008, 14:05
  3. Empfangen eines IR-Signals
    Von Festblatte im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.07.2007, 16:48
  4. Fragen zur Trägerfrequenz eines IR-Signals?
    Von Thomass im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 28.03.2005, 22:46
  5. [ERLEDIGT] getaktetes durchschalten eines analog-signals
    Von joners im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 07.07.2004, 10:16

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •