Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Stacktrace - Unterschied bei "raise" oder "access violation"

  Alt 31. Okt 2018, 17:11
Kannst du ein kleines Testprojekt einstellen? Wenn ich ein Test-VCL-Projekt das folgendermaßen aussieht:

Delphi-Quellcode:
implementation

uses JclDebug;

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
begin
   Application.OnException := handleException;
end;

procedure TMainForm.Button1Click(Sender: TObject);
var
   lTestObject: TStringList;
begin
   lTestObject := nil;
   lTestObject.AddObject('Test', Self);
end;

procedure TMainForm.handleException(Sender: TObject; E: Exception);
begin
   if Assigned(e) then
      Memo1.Lines.Text := e.StackTrace;
end;
liefert folgenden Stack:

Code:
(001F7D0C){StackTestProject.exe} [005F8D0C] GUI.MainForm.TMainForm.Button1Click + $C
(00007A9B){StackTestProject.exe} [00408A9B] System.@HandleAnyException + $33
(0011D989){StackTestProject.exe} [0051E989] Vcl.Controls.TWinControl.WndProc + $5E9
(00131CE8){StackTestProject.exe} [00532CE8] Vcl.StdCtrls.TButtonControl.WndProc + $6C
(0011DAEF){StackTestProject.exe} [0051EAEF] Vcl.Controls.DoControlMsg + $23
(0011D989){StackTestProject.exe} [0051E989] Vcl.Controls.TWinControl.WndProc + $5E9
(0011CFA8){StackTestProject.exe} [0051DFA8] Vcl.Controls.TWinControl.MainWndProc + $2C
(000BFBF8){StackTestProject.exe} [004C0BF8] System.Classes.StdWndProc + $14
(0011DA9A){StackTestProject.exe} [0051EA9A] Vcl.Controls.TWinControl.DefaultHandler + $E6
(0011D989){StackTestProject.exe} [0051E989] Vcl.Controls.TWinControl.WndProc + $5E9
(00131CE8){StackTestProject.exe} [00532CE8] Vcl.StdCtrls.TButtonControl.WndProc + $6C
(000BFBF8){StackTestProject.exe} [004C0BF8] System.Classes.StdWndProc + $14
Interessant wären hierbei wahrscheinlich insbesondere die dproj-Datei deines Testprojekts...
  Mit Zitat antworten Zitat