![]() |
Sowas wie __LINE__ in Delphi?
Hi,
gibt es sowas wie __LINE__ auch in Delphi um an die Codezeile zukommen? Bei einem Assertion steht ja auch die Codezeile dabei :) MfG, Manu |
Re: Sowas wie __LINE__ in Delphi?
Ist bei den JEDIs dabei.
|
Re: Sowas wie __LINE__ in Delphi?
Hmm? Wo und wie heißt das Teil?
(Ginge aus auch ohne Jedis?) |
Re: Sowas wie __LINE__ in Delphi?
Nein. Sowas wie LINE gibt es in Delphi nicht. Bei C/C++ und wer das alles kennt, ist es im Preprozessor eingebaut. Die einzigste Funktion, die automatisch Modul/Zeile ergänzt bekommt ist Assert. Aber ist halt Compiler Magic und du kommst an den Wert nicht ran.
|
Re: Sowas wie __LINE__ in Delphi?
Zitat:
...:cat:... |
Re: Sowas wie __LINE__ in Delphi?
Hmm, außer es ist bei den JEDIs dabei :mrgreen:
[edit] @Daniel, weißt du auch wie? [/edit] |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
![]() ![]() ![]() |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
Delphi kann eine MAP-File erzeugen. In dieser stehen die Offsets zu jeder Zeile/Datei drinne und anhand dieser kann man die aktuelle Zeile ermitteln ;) ...:cat:... |
Re: Sowas wie __LINE__ in Delphi?
Ja, kann mal einer sagen wie die Kompo bei den Jedis heißt. :roll: :mrgreen:
Ich möchte einen Fehlerreport erzeugen, in dem die Codezeile drinne steht. |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
|
Re: Sowas wie __LINE__ in Delphi?
Sowas wie LINE gibts trotzdem nicht ;) Bei C++ wird LINE als Compiler-Konstante interpretiert und kann auch so verwendet werden.
Man kann nur die Zeile anhand einer Adresse ermitteln, wenn die gesamte Map-Datei an die EXE mit rangehängt wird und diese vergrößert die EXE deutlich. Ohne diese Map, kann man die Adresse nicht auf eine Unit/Zeilennummer zurückrechnen. Aber, zum Erzeugen eines Fehlerreports ist vielleicht MadExcept besser, da dieser noch ein paar mehr Informationen erstellt und schon eine Mail-Funktion integriert hat. |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
|
Re: Sowas wie __LINE__ in Delphi?
So,
ich hab mir jetzt die zwei Demos mal angesehen und die erfüllen ja fast meinen Zweck. Wobei bei der Frames-Demo Line immer 0 war. Das Problem ist ja, ich möchte nur die Zeilennummer, der Rest, was z.B. bei der Stack-Demo ausgegeben wird, bräuchte ich gar nicht. Kann man das irgendwie "wegschalten"? |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
|
Re: Sowas wie __LINE__ in Delphi?
Hi,
manchmal sieht man den Wald vor lauter Bäumen nicht :mrgreen: In der Unit JclDebug gibts eine Funktion __LINE__ die genau das tut, was ich brauche :) |
Re: Sowas wie __LINE__ in Delphi?
Zitat:
|
Re: Sowas wie __LINE__ in Delphi?
Die braucht aber auch .map oder td32-Daten or jdbg-Daten.
|
Re: Sowas wie __LINE__ in Delphi?
Ja gut, stimmt auch wieder.
Vllt. lass ich einfach die Zeilennummern weg. Die Map-Datei ist auch grad mal 800kb groß.^^ |
Re: Sowas wie __LINE__ in Delphi?
Die jdbg-Daten werden an die Exe angehängt und sind ungefähr 10-15% der original Exe-Größe (wenn natürlich die .dfm Dateien aufblähen ist das Verhältniss anders).
Alternativ kann man auch einen Präprozessor schreiben, der __LINE__ durch eine max. 8-stellige Zahl ersetzt um nicht die Spaltennummer zu verändern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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