Ist es möglich, die Anweisung abzufangen, die einen ungültigen Wert in das PC-Register geschrieben hat?
293
xiaokaoy
Nach einer Anweisung zum Beispiel
pop
schreibt einen ungültigen Wert, z. B. 0, in das pc
Register, die CPU versucht, die Anweisung 0 abzurufen, die normalerweise einen Segmentfehler auslöst.
Während der Fehlerbehandlung können wir die Werte der Register lesen, einschließlich der Werte des pc
Registers, die in diesem Fall 0 sind. Wenn wir die Adresse der Anweisung, die den ungültigen pc
Wert verursacht hat, wie die Adresse der pop
obigen Anweisung, herausfinden können, würde dies natürlich beim Debuggen mehr helfen. Gibt es eine Möglichkeit, den Fehler ein wenig früher zu fangen (den vorherigen Befehl abfangen, der den Fehler verursacht hat)?
Verwenden Sie einen In-Circuit-Emulator mit Trace-Funktion.
sawdust vor 7 Jahren
0
Dies ist wahrscheinlich eine Frage, die besser für den Stackoverflow geeignet ist (und ich schlage generell den umgekehrten Weg vor). Grundvoraussetzung: Die Anweisung ist beim Abrufen nicht ungültig - sie ist ungültig, wenn der Prozessor versucht, sie auszuführen. Auch wenn das Abrufdecodierungs- und -ausführungsmodell von einer modernen ARM-Pipeline ziemlich weit entfernt ist, bleibt die Tatsache, dass es sich bei den beiden deutlich voneinander getrennten Operationen handelt.
unixsmurf vor 7 Jahren
0
Verwenden Sie einfach einen Debugger, da muss es ungefähr eine Million sein.
MariusMatutiae vor 7 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4