Wenn ich mein Programm starte (zugegeben, es wurde im Debug-Modus gebaut), bekomme ich einen Fehler "Externe Ausnahme 80000003".
Laut Win32-Ausnahme / Zugriffsverletzung bedeutet dies 0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.
Es sind jedoch keine Haltepunkte in der IDE gesetzt und ich führe sie außerhalb der IDE aus.
Ja, ich habe die korrekte ausführbare Datei. Ich löschte alle Haltepunkte, säuberte mein Projekt und baute es neu, aber immer noch dieses Dialogfeld. Ich löschte sogar die EXE-Datei, baute sie erneut und sah sie dort, wo sie erwartet wurde. Überprüfte den Zeitstempel auf der .exe. Ich habe eine Nachricht an FromCreate () hinzugefügt und sah das plus "Externe Ausnahme 80000003".
Wie mache ich das weg (Bauen im Debug-Modus)?
D'oh !! Es war alter Code und ich habe vergessen, dass ich das tatsächlich in einer Fehlerbedingung asm int 3 end;
codiert hatte, die einen Haltepunkt an die IDE (oder an Windows, wenn die IDE nicht läuft, daher das Fehlerfeld) signalisiert. Entschuldigung für Zeitverschwendung.
Ein Haltepunkt ist im Wesentlichen ein Befehl auf Maschinenebene (Opcode?), der bewirkt, dass die CPU-Verarbeitung pausiert und ein Ausnahmesignal ausgelöst wird. Dies wird normalerweise vom Betriebssystem und dann von einem Benutzerprozess wie einem Debugger oder Simillar übernommen.
Als ich das hatte, war es fast immer, als mein Code in einen Datenraum sprang. Ich sage fast immer, da ich Breakpoints versehentlich in Code programmiert habe, wenn ich gelegentlich auch Albträume (!) Debugge.
Edit: Da @Ken White sagt, dass int 3 (der Breakpoint-Interrupt) der ist, den ich benutzt habe, um hart zu programmieren: -)
Als erstes würde ich einen Stack-Trace bekommen und Backwords arbeiten.
Tags und Links delphi