Assemblerprogrammierung

Antworten
Nachricht
Autor
satyria
Beiträge: 9
Registriert: 29. Okt 2001 11:54
Kontaktdaten:

Assemblerprogrammierung

#1 Beitrag von satyria » 05. Dez 2001 9:03

Wie verhindere ich am besten ein "Segmentation fault" unter GAS.

Gruß Satyria

dwax
Beiträge: 65
Registriert: 14. Jun 2001 15:30

Re: Assemblerprogrammierung

#2 Beitrag von dwax » 06. Dez 2001 13:58

sauber programmieren <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
segfault ist der fehler den man bekommt, wenn man versucht auf fremden speicher zuzugreifen ...

btw das hat nichts mit der programmiersprache zutun!

MfG Dirk

satyria
Beiträge: 9
Registriert: 29. Okt 2001 11:54
Kontaktdaten:

Re: Assemblerprogrammierung

#3 Beitrag von satyria » 06. Dez 2001 15:41

Ich bin mir nicht bewust in einen fremden Speicher geschrieben zu haben. Der Fehler tritt nach einem oder beim jmp Befehl auf. Laut Debugger funktionierts soweit.

Jochen

Re: Assemblerprogrammierung

#4 Beitrag von Jochen » 06. Dez 2001 17:03

Als Assembler-Laie sage ich dazu: "Zugreifen" heisst nicht "schreiben". Wenn Du mittels jmp an eine Adresse springen willst, die Deinem Prozess nicht zugewiesen ist (oder nur zum data-Segment gehört und nicht zum text?), wird der Prozess aufgrund des illegalen Zugriffs abgeschossen.

Jochen

satyria
Beiträge: 9
Registriert: 29. Okt 2001 11:54
Kontaktdaten:

Re: Assemblerprogrammierung

#5 Beitrag von satyria » 07. Dez 2001 9:22

Noch ein kleiner zusatz!

Nach langem überlegen: Kann es auch sein das eine Externe Lib diesen Fehler verursacht? Mein Programm reserviert sich mit .long Speicher in dem eine EXTERNE Lib Daten speichern soll! Wenn das dann so ist, wie umgehe ich diesen Fehler?

Wenn ich im Debugger versuche im einzelschritt den Fehler (und Ursache) zu finden, erscheint kein Fehler und das Programm läuft so wie ich es auch haben möchte. Wenn der Debugger das Programm in einem Rutsch durchlaufen soll, bringt er den Fehler. Mergwürdig oder erklärlich?

Gruß Satyria

Antworten