AGB  ·  Datenschutz  ·  Impressum  







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

Exception.StackTrace ?

Ein Thema von himitsu · begonnen am 17. Mai 2011 · letzter Beitrag vom 1. Nov 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

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

Exception.StackTrace ?

  Alt 17. Mai 2011, 13:03
Delphi-Version: XE
Seit einer Weile gibt es in allen Exception-Klassen theoretisch einen Stacktrace, welchen man auslesen könnte.
Nur leider hat irgendein "Idiot" vergessen diesen zu füllen.

Gut, wenn man sich das nun genauer ansieht, müßte man diesen drei Property erstmal was zuweisen, damit das dann auch nutzbar ist.
So ist das aber eine vollkommen nutzlose Funktion.
Delphi-Quellcode:
Exception = class(TObject)
public
class var
  // Hook this function to return an opaque data structure that contains stack information
  // for the given exception information record. This function will be called when the
  // exception is about to be raised or if this is an external exception such as an
  // Access Violation, called soon after the object is created.
  GetExceptionStackInfoProc: function (P: PExceptionRecord): Pointer;
  // This function is called to return a string representation of the above opaque
  // data structure
  GetStackInfoStringProc: function (Info: Pointer): string;
  // This function is called when the destructor is called to clean up any data associated
  // with the given opaque data structure.
  CleanUpStackInfoProc: procedure (Info: Pointer);
Nur wo bekommt man das her und warum hat Emba das nicht gleich mitgeliefert?

Ach ja, die vielen neuen Hilfethemen ala "This is xxx, a member of xxx.", welche in der OH nun drin sind, sind nicht hilfreich, dann das weiß ich auch alles so schon.
Zitat von http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_Exception_StackTrace.html:
Pascal
property StackTrace: string; .

Description
This is StackTrace, a member of class Exception.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Mai 2011 um 13:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Exception.Stacktrace ?

  Alt 17. Mai 2011, 13:15
Zitat:
Nur leider hat irgendein dämlicher Idiot vergessen diesen zu füllen.
Das ist nicht gerade die feine englische Ausdrucksweise. Vielleicht wurde das bewusst nicht gefüllt da es ein Großteil nicht nutzt und um Overhead zu vermeiden.
Wie sehen denn deine bisherigen Versuche aus dies zu nutzen?
(Vielleicht will/wollte man damit auch nur eine Schnittstelle für diverse Exception-Trace-System bereitstellen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Exception.Stacktrace ?

  Alt 17. Mai 2011, 13:21
Du kannst das auslesen und bekommst einen Leer-String zurück.

In allen Komponenten (von Eurekalog bis Sonstewas) und allem was bei uns auf der Platte rumfleucht, ist jedenfalls nichts zu finden, welches dieses "Feature" nutzt, bzw. welches zuweisbare Funktionen für diese Property bereitstellt.
In Google bin ich noch auf Suche, aber bisher erfolglos.


Aber wenn man schon sowas einbaut und dieses nicht funktionstüchtig ist, weil noch etwas fehlt, dann wäre es schon gut, wenn man dafür den OH-Eintrag befüllt und dort sagt was wie wo man noch machen könnte.
Jemand mit 'nem Delphi Starter ist da voll am Arsch, weil in der OH absolut nix steht und ohne RTL-Sourcecodes kann man nichtmal nachsehn warum es nicht geht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Exception.Stacktrace ?

  Alt 17. Mai 2011, 13:26
Seit einer Weile gibt es in allen Exception-Klassen theoretisch einen Stacktrace, welchen man auslesen könnte.
[...]
Nur wo bekommt man das her und warum hat Emba das nicht gleich mitgeliefert?
Zu dem Thema gibt es einige Blog Einträge wie z.B. Working with Delphi’s new Exception.StackTrace
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Exception.StackTrace ?

  Alt 17. Mai 2011, 15:55
Irgendwie funktioniert das nicht.

JclLastExceptStackList liefert keine Liste zurück und damit kann das JclLastExceptStackListToStrings in GetExceptionStackInfoProc auch keine StackListe liefern.

Die Map-Dateien und alle möglichen Debuginfos sind in den Projektoptionen aktiviert, sowie die Stackframes.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Exception.StackTrace ?

  Alt 19. Mai 2011, 23:35
Tut mir leid, hab den Verweis von USchuster glatt übersehen...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Exception.StackTrace ?

  Alt 20. Mai 2011, 09:52
@himitsu:
Hast du auch JclStartExceptionTracking aufgerufen?!
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Exception.StackTrace ?

  Alt 20. Mai 2011, 11:24
@himitsu:
Hast du auch JclStartExceptionTracking aufgerufen?!
Ich glaub nicht Jupp, wird es.
Aber komisch, daß es manchmal doch geht und dann wieder nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Mai 2011 um 11:31 Uhr)
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Exception.StackTrace ?

  Alt 27. Okt 2013, 13:20
Auch wenn der Thread schon verdammt alt ist, belebe ich ihn mal wieder (ist schließlich bald Halloween ).

Mit dem Bsp. aus dem von USchuster verlinkten Thread wird immer die vorhergehende Exception angezeigt. Wenn es also die erste Exception nach Start der Anwendung ist, ist der Exception.StackTrace = ''
Ruft man JclLastExceptStackListToStrings direkt im Exceptionhandler auf, bekommt man die aktuelle.
Allerdings fällt so auch der bequemere Zugriff auf den Exception.StackTrace weg

Eventuell könnte man im GetExceptionStackInfoProc ja JclGetExceptStackListToStrings statt JclLastExceptStackListToStrings aufrufen. Dafür braucht man allerdings den zusätzlichen Parameter ThreadID. Hat jemand eine Idee, wie man die bekommt? Die Doku ist an der Stelle etwas "dürftig".
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#10

AW: Exception.StackTrace ?

  Alt 28. Okt 2013, 12:25
Hilft dir eventuell das hier?
Zitat:
The GetCurrentThreadId function returns the thread identifier of the calling thread.
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:51 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