• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Помогите разобраться с ошибкой!

  • Автор темы AvasKvas
  • Дата начала
A

AvasKvas

Всем доброго времени суток.
Помогите разобраться, по какой причине возникает ошибка:
У одного из клиентов агент выполняющийся по расписанию вываливается с ошибкой под номером 4399 (Value is out of range).
при чем при запуске этого агента на локалке отрабатывает нормально, при запуске на сервере - ошибка. Сервер винда 2008 64 бита.

Все что нашел в хелпе, только это: NOTES_ERR_RTPSTYLE_OUTOFRANGE = 4399;
Таким образом я определил,что ошибка в этой функции:
Код:
Function CreateTable(Body As NotesRichTextItem, stroki As Integer, stolbci As Integer,v As Variant)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim j As Integer, iRow As Single, iColumn As Single


Set db = s.CurrentDatabase


'AgentStep="[09] Создаем стиль таблицы"
'стиль таблицы
Dim styles() As NotesRichTextParagraphStyle
For i% = 0 To stolbci-1 Step 1
ReDim Preserve styles(i%)
Set styles(i%) = s.CreateRichTextParagraphStyle
styles(i%).LeftMargin = 0
styles(i%).FirstLineLeftMargin = 0
styles(i%).RightMargin = RULER_ONE_INCH*v(i%)
Next
'	AgentStep="[10] Создаем таблицу"
Call body.AppendTable _
((stroki+1), stolbci,, RULER_ONE_INCH *0.39, styles)
Set CreateTable = body
End Function

А конкретно при использовании NotesRichTextParagraphStyle. Количество итераций в цикле равно 12 (в других агентах использовал эту функцию и больше быо и ничего, работет).

Но почему ошибка именно здесь, не понятно!И у себя повторить я не могу! Подскажите, в чем может быть проблема?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Стоит полностью указывать границы - ReDim Preserve styles(0 to i%)
И посмотреть не стоит ли Option Base 1.
 
N

nvyush

Таким образом я определил,что ошибка в этой функции
Стоит добавлять нормальный обработчик ошибок в процедуры/функции, чтобы можно было легко локализовать не только функцию, но и строку ошибки. Примеров в сети и на форуме достаточно. Ключевые слова в справке дизайнера: On Error, Error, Err, Erl, GetThreadInfo
 
A

AvasKvas

К сожалению у меня в организации политика обработки ошибок именно такая!
И я же написал, что выдал обработчик ошибок: 4399 (Value is out of range) И в справке дизайнера рылся и написал что нашел!
 
T

turumbay

К сожалению у меня в организации политика обработки ошибок именно такая!
обработчика у вас нет. соответственно и политики тоже нет.
добавьте в начало функции что-то типа
Код:
'(c) - если не ошибаюсь, TIA
On Error Goto ErrH
If False Then
ErrH: Error Err, Error$ & Chr(10) & Getthreadinfo(1) & " (" & Erl & ")"
End If end
так получите номер строки, в которой ошибка.
Ставлю банку гинеса, что проблема в
Код:
styles(i%).RightMargin = RULER_ONE_INCH*v(i%)
что лежит в v As Variant, какова размерность?
 
A

AvasKvas

Согласен! Если получится у клиента поработать, то уточню!
А так, если по теории, что может быть не так?!
 
H

hosm

Прислушайтесь к Medevic + проверьте v(i%).
 
A

AvasKvas

Так и сделаю, но уже не сегодня!До клиента не достучаться!
 
Мы в соцсетях:

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