Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Глюк KADR_LC227

Вы не вошли.

 Поиск | Регистрация | Вход 

Anatoly
14.03.2002 20:25:25
#1

Гость

Глюк KADR_LC227

Глюк KADR_LC227.
Win2000, Delphi 6.0.
Данная функция вызывается из нити мультимедийного таймера. Глюк в том, что в результате работы оной функции происходитъ самопроизвольное изменение глобольных переменных.
Трассировка в дебагере показала, что меняется указатель на стек, именно во время работы самой функции. После завершения работы функции указатель на стек остается измененным.
Эта же функция нормально работает из отдельной нити, если она вызывается не из мультимедийного таймера. (Но при этом указатель на стек не восстанавливается.)

В чем может быть проблема?

anatoly_melkov
18.03.2002 14:42:57
#2

Гость

Re: Глюк KADR_LC227

В продолжение темы.
Выяснилось что функция KADR_LC227 в прямом смысле гадит память. Т.е. в качестве теста была создана нить в которой был только вызов этой функции, а также инициализировался массив на 100 байт. После инициализации все элементы массива становились равными нулю (естественно), но после вызова KADR_LC227 первые 64 байта массива приняли произвольное значение.

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

Пример программы с глюком можем выслать.