Форум: "Прочее";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизКак получить номер строки в коде? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c