Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

AW: Prozedur / Funktionsname auslesen?

  Alt 29. Mai 2013, 20:20
Schau mal bei den Jedis nach.

Dort gibt es u. a. die Units: JclDebug, JclHookExcept.

Das Programm muss mit ausführlicher MAP-Datei erstellt werden. In der Fehlerbehandlung kannst Du Dir dann die Unit ausgeben lassen, die den Quelltext enthält, die Funktion/Prozedure und mit ein bisserl Glück bekommst Du auch noch die Nr. der Quelltextzeile, in der der Fehler auftrat.

Eine mögliche Umsetzung findest Du eventuell unter http://stackoverflow.com/questions/1...ling-libraries

In einem meiner Programme sehen die per JCL erstellten Fehlermeldungen inhaltlich so aus:
Code:
No format specified., Fehlertyp: EMemTableError, Sender: tm [TSpecialTimer]
(0011E663){MeinDeineSeineEine.exe} [5828F663] kbmMemTable.TkbmCustomMemTable.SaveToFileViaFormat (Line 9655, "kbmMemTable.pas" + 5) + $0
Dateiname: MeinDeineSeineEine.exe
Fehleradresse: 0011E663
Unit: kbmMemTable
Fehleradresse: 5828F663
Modulname: kbmMemTable.pas
Prozedur: TkbmCustomMemTable.SaveToFileViaFormat
Prozeduroffset: 55
Zeilennummer: 9655
Zeilenoffset: 0
Modul: 1477902336 [58170000]
Finde die Aussagekraft von Fehlermeldungen dieser Art, erstellt mit der JCL, lassen kaum noch Wünsche offen.

Oder schau Dir aus der JVCL mal die Komponente TJvDebugHandler an, hier kannst Du per Attribute ein bisserl auswählen, was an Fehlern behandelt werden soll und ob diese Fehler in eine Logdatei geschrieben werden sollen. Die Meldungen, die dort ausgegeben werden, sollten auch für die Lokalisierung eines Fehlers ausreichen.
  Mit Zitat antworten Zitat