Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi int 3 - ein ungewollter Breakpoint (https://www.delphipraxis.net/95964-int-3-ein-ungewollter-breakpoint.html)

3_of_8 16. Jul 2007 17:59


int 3 - ein ungewollter Breakpoint
 
Morgen.

Ich habe folgenden Code:

Delphi-Quellcode:
var surface: PSDL_Surface;
begin
  //...
  surface.format.BytesPerPixel;
  //...
end;
Der Delphi-Compiler erzeugt hier seltsamerweise ASM-Code, in dem ein int 3; drinsteht. Ich weiß, dass dieser Interrupt aufgrund irgendeines Bugs einen Breakpoint auslöst, bei dem Delphi dann auch anhält.

Das Thema hatten wir hier schon mal, aber per Suche habe ich nichts gefunden.

Wie kann ich dafür sorgen, dass ich diesen Interrupt los bin? Im Debugger löst er einen Haltepunkt aus, außerhalb schmiert gleich das ganze Programm ab.

Dax 16. Jul 2007 18:10

Re: int 3 - ein ungewollter Breakpoint
 
Zitat:

Zitat von 3_of_8
Der Delphi-Compiler erzeugt hier seltsamerweise ASM-Code, in dem ein int 3; drinsteht. Ich weiß, dass dieser Interrupt aufgrund irgendeines Bugs einen Breakpoint auslöst, bei dem Delphi dann auch anhält.

Korrektur: das ist kein Bug, sondern der Weg des Programmes, selbst einen Breakpoint auszulösen. Wie du das allerdings loswirst... Hast du die Sourcen dieser Funktion?

3_of_8 16. Jul 2007 18:22

Re: int 3 - ein ungewollter Breakpoint
 
Ich sehe gerade, der Code, der dafür verantwortlich ist, wird aufgerufen von der Prozedur/Funktion/Whatever RtlZeroHeap.

Korrektur: Ich rufe eine Funktion auf: SDL_CreateRGBSurface;

Ich schau schnell mal den Source an. (Ich dachte, der Fehler tritt bei der Dereferenzierung auf)

EDIT: Schlecht, ist in ner DLL. Aber eigentlich dürfte da nichts passieren.
EDIT2: Kopf->Wand. Der Fehler war, dass ich die Funktion mit der Anzahl Bytes statt Bits aufgerufen habe. Die Funktion reagierte dann wohl etwas patzig mit nem Breakpoint statt einer schönen Fehlermeldung... auf jeden Fall danke. (Ich hab hier auch mal was davon gelesen, dass int 3 im Zusammenhang mit einem Bug erwähnt wurde, daher ist mir das spontan eingefallen)

himitsu 17. Jul 2007 19:41

Re: int 3 - ein ungewollter Breakpoint
 
wieso Bug?

ich nut dieses schon lange absichtlich :mrgreen:

INT 3 wird aber "nur" vom Debuger verarbeitet, welcher dieses (soweit ich mich erinnere richtiger Weise) als Haltepunkt ansieht.

Außerhalb des Debugers hat INT 3 normaler Weise keine Funktion.


ich bin mir aber sicher, daß es hier im Forum schon mindestens einen Thread dazu gibt, wo das nochmal erklärt wurde.


[add]
was man mit "asm int 3" nicht alles in der Suche findet :roll:
http://www.delphipraxis.net/internal...hlight=asm+int

3_of_8 18. Jul 2007 12:18

Re: int 3 - ein ungewollter Breakpoint
 
Das hab ich auch gefunden. Geholfen hats mir aber nichts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz