Wenn du jetzt noch das zweite L einfügst, ist es richtig.
Zitat:
Allerdings - auch wenn ich mit Debug-Informationen übersetzen, bekomme ich keine anderen Informationen.
Das meinte ich auch nicht. Du könntest dann aber versuchen, zur Laufzeit die Debug-Informationen auszulesen und den Routinennamen zu finden. Dass das alles andere als trivial wäre, sollte trotzdem klar sein.
Du brauchst ohne Debug-Informationen aber auch nicht gleich die Flinte ins Korn zu schmeißen. Du könntest folgendermaßen vorgehen: Die Startadresse einer Funktion erhältst du mit dem @-Operator. Wenn du nun eine grobe Abschätzung der Code-Länge in Byte addierst, erhältst du die Adresse des Funktionenendes (falls du die Reihenfolge der Funktionen in der .pas-Datei kennst, ist es noch einfacher - dann liegt das Ende der Funktion nämlich kurz vor dem Anfang der nächsten). Falls du einen Verdacht hast, welche Funktion genau der Störenfried ist, ist das schon recht nützlich. Andernfalls kannst du deine Schätzung noch etwas gröber machen, um eine ganze
Unit zu fassen - ich glaube, dass der Linker Funktionen einer
Unit immer nahe zueinander ablegt.
Dann prüfst du einfach, ob die Fehleradresse im gesuchten Bereich ist, und siehst, ob die
Exception direkt in einer der gesuchten Funktionen geworfen wurde. Das Problem mit den Hilfsroutinen bleibt natürlich.