AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Stacktrace - Unterschied bei "raise" oder "access violation"
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Ralf Kaiser · begonnen am 31. Okt 2018 · letzter Beitrag vom 31. Okt 2018
Antwort Antwort
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#1

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

  Alt 31. Okt 2018, 09:24
Mittlerweile habe ich herausgefunden, dass diese extrem kurzen Stacktraces (1 Zeile) scheinbar erzeugt wurden weil in den Optionen (TJclStackTrackingOptions) die Option [stRawMode] fehlte.

Trotzdem unterscheiden sich die Stacktraces immer noch. Der Trace der eine Exception die geraiset wird enthält ist kürzer in dem anderen ist scheinbar noch der Code für die Erstellung der Exception selbst enthalten, womit er länger ist (Aufrufe von System.GetMem usw.)
Ralf Kaiser
  Mit Zitat antworten Zitat
Der schöne Günther

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

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
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

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

  Alt 31. Okt 2018, 18:04
Heute nicht mehr (und Morgen ist Feiertag). Ich kann am Freitag mal die unterscheidlichen Stacktraces erzeugen. Wobei das Hauptproblem (der einzeilige Stacktrace) ja durch die Angabe der Raw-Option gelöst ist.
Ralf Kaiser
  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 07:32 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