![]() |
Wie findet man am besten eine AV in der BPL
Hallo,
ich habe eine eigene Komponentensammlung, die in der BDS2006 funktioniert auf D5 umgeschrieben, weil ich sie in D5 auch benötige und noch nicht alle Projekte auf BDS umgestellt habe. Irgendwo ist aber ein Wurm drin, der mir folgende AV beim Einfügen des Controls in ein leeres Form bringt: Zugriffsverletzung bei Adresse 10EF9F91 in Modul 'ixEditD5.bpl'. Lesen von Adresse 00000008. Gibt es eine Möglichkeit die problemtische Stelle direkt zu finden oder nur über Trial and Error in dem man stückweise den Quellcode der Komponentensammlung kommentiert/auskommentiert ? Gruß Uwe |
Re: Wie findet man am besten eine AV in der BPL
Ich würde die Bpl debuggen
|
Re: Wie findet man am besten eine AV in der BPL
Danke für die schnelle Antwort, ich bräuchte aber etwas mehr input zum howTo.
|
Re: Wie findet man am besten eine AV in der BPL
Es gibt da versch. Techniken; die Wichtigsten werden in
![]() beschrieben. |
Re: Wie findet man am besten eine AV in der BPL
Öffne das Package und wähle das Programm, welche diese verwendet in den Projektoptionen als Hostanwendung aus. Nun kannst du Breakpoints setzen und sie mit Debugger Starten.
|
Re: Wie findet man am besten eine AV in der BPL
Also Hostanwendung habe ich unter den Optionen im geöffneten Package nicht gefunden.
Delphi Fehlersuche im Schnelldurchgang gelesen, zum Punkt AV ist sie, was das finden angeht, nicht sehr ergiebig. Ich habe daher dem Form einen Button spendiert und dort den Breakpoint angelegt. procedure TForm1.Button1Click(Sender: TObject); var myLabel : tixlabel; begin myLabel := tixlabel.Create(Form1); // <- Breakpoint end; Dies funktioniert ohne Exception aber auch ohne Ergebnis, myLabel wird nicht angezeigt. |
Re: Wie findet man am besten eine AV in der BPL
Andersrum, die Anwendung, welche das Package verwendet muss die Hostanwendung sein.
|
Re: Wie findet man am besten eine AV in der BPL
Hallo,
< Dies funktioniert ohne Exception aber auch ohne Ergebnis, myLabel wird nicht angezeigt. >
Delphi-Quellcode:
2 Schwachpunkte
procedure TForm1.Button1Click(Sender: TObject);
var myLabel : tixlabel; begin myLabel := tixlabel.Create(Form1); // <- Breakpoint end; 1. warum Form1 und nicht Self, Form1 könnte auch NIL sein 2. myLabel.Parent:= Self; // ohne das wird das Label nicht angezeigt. Deine Schutzverletzung kommt wie es aussieht von einem NIL Access. Heiko |
Re: Wie findet man am besten eine AV in der BPL
Nicht das wir aneinander vorbeireden, das Form1 mit dem Button ist eine Testanwendung, die die Komponente benutzt.
Nach der Änderung auf self als Owner ändert sich nichts mylabel := tixlabel.Create(self); Mit der zusätzlichen Zeile mylabel.parent := self; ist das Ergebnis 100%CPU in delphi32 |
Re: Wie findet man am besten eine AV in der BPL
Setz doch mal einen Breakpoint im Package oder drücke am vorhandenen F7
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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