Добрый день. У меня программа, написанная на VB6 с одинаковыми модулями OCX для отображения 2D графиков функций.
Столкнулся с проблемой, что в модулях OCX происходит нарушение передачи данных.
Одни модули видят значения переменных других модулей несмотря на то, что переменные объявлены как Dim или Private, а в каждой подпрограмме стоят перехваты ошибок On Error.
В результате этого при выполнении алгоритма в OCX происходит смешивание данных от модулей и нарушение функциональности, что приводит к ошибкам Out of Memory; Массив не определён и т.д. Визуально проявляется в том, что график в области UserControl прекращает прорисовываться, а рабочий экран Windows начинает прорисовывать функции графика. Далее по цепочке вылетают все остальные модули. В данном случае переход в режим пошаговой отладки не возможен. Программа VB6 слетает из памяти. Если же ошибку удаётся отловить, такую как Out of Memory, удаётся перейти в режим отладчика. При этом отрисовка на рабочем столе Windows нарушена, но после нескольких обращений к функциям VB6 иногда удаётся посмотреть, в какой подпрограмме возникла ошибка. Нажав Ctrl + L (стек обращений), видно, что уровень стека насчитывает до 15-20 уровней.
У меня такой вопрос, как можно отладить алгоритм. Ранее такого не наблюдалось.
https://disk.yandex.ru/i/jvHtF_H_QgxMZw
Спасибо.