• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Domino Designer 8.x И Номер Строки С Ошибкой (erl)

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Ситуация:
ЗАметил, что если пишешь свой класс, то номер строки в ошибке возвращается не совсем верно: выше чем идет ошибка, пытался считать но толком не разбирался, смирился. Сейчас проблема стала острой и решил разобраться до конца.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">С IBM поддержки</div></div><div class="sp-body"><div class="sp-content">
Problem
You have created a class in your script library which throws an error. However ERL() misreports the line number.
For example: A script library has the error occur on line 17 of a custom class and line 30 in the all code view. However ERL() reports it happening on line 20.

Resolving the problem
In previous versions of Domino Designer LotusScript classes were stored in the "Declarations" section of the script library. The ERL() number reported was relative to this section.
In Domino Designer 8.5.1 the classes are still stored in this location, but visually have their own sections in the outline view of the Designer client.
To determine the correct ERL() number you can do the following.
1. Go to the "Options" view of the script library. Determine the number of lines there.
2. Go to the "Full code" view (top of the outline). The correct line the error occurred on is the value of ERL() + the size of the Options section.
От себя добавляю, что надо к ERL прибавлять не только количество строк в (Options), но и строки из (Declarations).
Заходим в каждую из "областей библиотеки" считаем все строки, (комментарии, заполненные и пустые), в каждой области суммируем и прибавляем к ERL, вот и строка с ошибкой.
Помогло очень включение опции "Отображать номера строк", так видно все пустые строки в конце блока. (картинка во вложении)
Пример:
Log:Sub "dbLog.init" в строке: 68
в (Options) - 3 строки
в (Declarations) - 4 заполненных, 1 пустая, итого 5 строк.
Конечная строка будет: 68+3+5=76

Данный момент касается только самопальных классов из (Declarations).
 

Вложения

  • showLine.png
    showLine.png
    14,6 КБ · Просмотры: 653
  • res.png
    res.png
    2,5 КБ · Просмотры: 662

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
а использование Navigate/Goto Err linе?
Тут интереснее, в 8.x внутри класса идет своя нумерация, а erl возвращает номер относительно всей библиотеки, поэтому меня это в ступор и вводило.
Да и сам Goto Erl line говорит нам.
Для перехода по библиотеке использую Ctrl + L
 

Вложения

  • gotoerlall.png
    gotoerlall.png
    7,1 КБ · Просмотры: 659
  • gotoerl.png
    gotoerl.png
    7,4 КБ · Просмотры: 289
K

Kee_Keekkenen

что касается нумерации, то да, видимо к выдаваемому номеру строки следует прибавить количество строк в опшионс секции, тогда полученное значение будет номер строки, где произошла ошибка, если смотреть на код, который открывается, когда кликаешь на имени библиотеки..

однако это геморр - что-то считать..

забей на это, чтобы перейти к строке с ошибкой нужно в навигаторе (там, где открыта библиотека - опшионс, декларейшнс, прочие события библиотеки, функции, классы) выбрать любой класс или метод любого класса и вызвать диалог по Ctrl + Alt + L и вводишь номер строки с ошибкой, что выдал лотус и корректно перехоишь к строке с ошибкой..
 

VladSh

начинающий
Lotus Team
11.12.2009
1 784
157
BIT
57
Сабж известен с момента выхода 8-ки; за выяснение реального номера строки спасибо, хотя уже привык работать без номеров строк, иногда проще в отладчике прогнать.
Они, эти *хорошие люди*, думаю, исправлять это не собираются. Интересно, как обстоит дело под 9-кой..
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
VladSh
Есть информация от Imike, что в 9-ке точно такая же шняга =)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!