Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Как получить номер строки в коде?   Найти похожие ветки 

 
Wolfram ©   (2006-03-26 11:39) [0]

Я хочу, чтобы моя программа в определённой ситуации выводила номер строки исходного кода. Что-то вроде утверждения (assert). Как получить заставить компилятор дать этот номер? Например:
var
 n: integer;
begin
...
n:={вот тут нужно получить номер текущей строчки в исходнике}
...
if ... then ShowMessage(IntToStr(n));
...
end;


 
grisme ©   (2006-03-26 11:48) [1]

надо пробовать как-то через получение значения регистра EIP, который Delphi, конечно же, тебе не даст получить...:)))


 
Геро   (2006-03-26 11:53) [2]

В строке статуса написано. Ставишь курсор куда нужно и смотришь.


 
Юрий Зотов ©   (2006-03-26 11:59) [3]

Assert и использовать.


 
Wolfram ©   (2006-03-26 12:06) [4]


> надо пробовать как-то через получение значения регистра
> EIP

я про номер строки в ИСХОДНОМ тексте говорю

> В строке статуса написано. Ставишь курсор куда нужно и смотришь.

И каждый раз при изменении кода править номер? Нет, это кошмар

> Assert и использовать

Assert не пойдёт, так как это не утверждение, программ должна вывести строку и работать дальше


 
Юрий Зотов ©   (2006-03-26 12:15) [5]

> Wolfram ©   (26.03.06 12:06) [4]

А если подумать?

if ... then
try
 Assert(...)
except
 on E: EAssertionFailed do  
   ... // Парсим строку сообщения, выводим имя юнита и номер строки
end;


 
Wolfram ©   (2006-03-26 12:30) [6]


> Юрий Зотов

охренеть можно от такой реализации :) а попроще никак?


 
Kerk ©   (2006-03-26 12:32) [7]

Куда проще-то?


 
Nikolay M. ©   (2006-03-26 12:32) [8]

В самом примитивном варианте

ShowMessage ("Unique GUID").

Лучше Assert-a тем, что для каждой логической точки отладки гуид будет один и тот же, а не плавающий номер строки. Плюс для Assert-a при отладки из-под IDE нужно будет отключить Stop on delphi exception, что не всегда полезно.
Но искать в исходном тексте расставленные гуиды, конечно, не так удобно, как конкретный номер строки.


 
Ketmar ©   (2006-03-26 17:44) [9]

>Nikolay M. ©   (26.03.06 12:32) [8]
не обязательно отрубать все "delphi exceptions". можно сказать, чтобы на ассерты внимания не обращало.



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
2-1143830068
Turbid
2006-03-31 22:34
2006.04.16
Как узнать, что курсор мыши над иконкой в трее?


15-1143376961
terdaw
2006-03-26 16:42
2006.04.16
Пожалуйста помогите разобраться с задачей!


2-1143795433
Alex7
2006-03-31 12:57
2006.04.16
Обращение к переменной Public


2-1144144175
Nick_serov
2006-04-04 13:49
2006.04.16
Grid Grid Grid... от TMS


3-1140548087
Варяг
2006-02-21 21:54
2006.04.16
Упаковка ADOTable