Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Искажение значения переменных


Автор: Angel_19 8.7.2009, 22:04
Подскажите в каких случаях могут происходить искажения значения переменных и как этого избежать.
Искжения происходят не в начале работы (переменные инициирую начальными данными или нулями), а уже в процессе.
Появилась такая напасть, как отловить не знаю.

Автор: WandG 8.7.2009, 22:44
Скорей всего имеют место ошибки при работе с памятью, а именно Вы пишите туда, куда нельзя, например, за границу массива, где могут быть расположены те самые переменные. Могу посоветовать FastMM для поски подобных ошибок

Автор: Данкинг 8.7.2009, 23:25
Какие искажения?  smile Пример кода будет или где? smile

Автор: Angel_19 8.7.2009, 23:44
Код большой. Весь сюда его никак.

Всем спасибо за участие. Дело оказалось в потоке.
Синхронизацию не делал, а делал событие, в основном методе потока, если событию назначена процедура, то вызывал ее.
А там не то, что много кода, просто вызывались процедуры и функции других компонент, для обновления оных. Поток у меня один, и вроде бы проблема синхронизации (когда разные потоки пытаются обновлять внешний вид), меня вроде как не касалась.

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

Добавлено через 31 секунду
Цитата(WandG @  8.7.2009,  23:44 Найти цитируемый пост)
Могу посоветовать FastMM для поски подобных ошибок


За наводку спасибо!

Автор: Bose 8.7.2009, 23:50
Angel_19, вот http://gunsmoker.blogspot.com/2009/05/blog-post_24.html.

Автор: RomanEEP 9.7.2009, 13:28
View->Debug Windows->BreakPoints->Add->Data breakpoint

Автор: Angel_19 9.7.2009, 20:45
Цитата(Bose @ 9.7.2009,  00:50)
Angel_19, вот http://gunsmoker.blogspot.com/2009/05/blog-post_24.html.

Спасибо! Ознакомился.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)