Wie verhindere ich am besten ein "Segmentation fault" unter GAS.
Gruß Satyria
Assemblerprogrammierung
Re: Assemblerprogrammierung
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
segfault ist der fehler den man bekommt, wenn man versucht auf fremden speicher zuzugreifen ...
btw das hat nichts mit der programmiersprache zutun!
MfG Dirk
Re: Assemblerprogrammierung
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.
Re: Assemblerprogrammierung
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
Jochen
Re: Assemblerprogrammierung
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
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