AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

int 3 - ein ungewollter Breakpoint

Ein Thema von 3_of_8 · begonnen am 16. Jul 2007 · letzter Beitrag vom 18. Jul 2007
Antwort Antwort
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

int 3 - ein ungewollter Breakpoint

  Alt 16. Jul 2007, 18:59
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: int 3 - ein ungewollter Breakpoint

  Alt 16. Jul 2007, 19:10
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?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: int 3 - ein ungewollter Breakpoint

  Alt 16. Jul 2007, 19:22
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)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: int 3 - ein ungewollter Breakpoint

  Alt 17. Jul 2007, 20:41
wieso Bug?

ich nut dieses schon lange absichtlich

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
http://www.delphipraxis.net/internal...hlight=asm+int
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: int 3 - ein ungewollter Breakpoint

  Alt 18. Jul 2007, 13:18
Das hab ich auch gefunden. Geholfen hats mir aber nichts.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz