Главная страница
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.052 c
15-1142807778
Bogdan1024
2006-03-20 01:36
2006.04.16
Агрессивные вегетарианцы


4-1138178994
maxim161
2006-01-25 11:49
2006.04.16
Shutdown&DOS applications


4-1138444229
VirEx
2006-01-28 13:30
2006.04.16
стиль MF_OWNERDRAW в PopUp меню - как при появлении перерисовать?


2-1143639894
qqpp
2006-03-29 17:44
2006.04.16
Есть не большой вопрос


2-1144099736
ctudent
2006-04-04 01:28
2006.04.16
TreeView+База данных