![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с записью теипа Record [D7]
Wadimka © (2012-01-26 07:47:00)Есть в программе куча записей record большинство из них это в последствии динамические массивы, а теперь проблема не могу понять почему,
создаю новый record в нем всего 6 полей типа Integer и Extended.
Программа компилится, но сразу вылетает по acces (данная запись рекорд только объявлена в type и в коде нигде не используется)
Если заремить это объявление, все работает
Какие есть вообще ограничения на эти структуры?
или как лечить?
Anatoly Podgoretsky (2012-01-29 12:03:00) [1]> Германн (29.01.2012 02:38:40) [40]
Вот в грунте и искать
Wadimka (2012-01-29 03:15:00) [2]да нашел уже, всем спс
Германн (2012-01-29 02:38:00) [3]
> Wadimka (29.01.12 02:07) [39]
>
> ну да, я же писал
> >> [31] да код бестолку скидывать, если так то там оклоло
> 30 массивов и 7 поток их обрабатывают, буду искать
Искать тебе и искать! Не будь к ночи сказано! :)
И опять почему-то вспоминается Фобос-Грунт. :(
Wadimka (2012-01-29 02:07:00) [4]ну да, я же писал
>> [31] да код бестолку скидывать, если так то там оклоло 30 массивов и 7 поток их обрабатывают, буду искать
Германн (2012-01-29 01:27:00) [5]
> а числа приходили Int64
Так теперь ещё выясняется, что твоя программа получает некие данные от хрензнает какого внешнего устройства по хрензнает какому протоколу. Так я тебе скажу милчеловек Вадимка. Тебе не просто повезло. Тебе сказочно повезло, что "какая-то фигня привела к AV ещё на этапе отладки"! Иначе...
Тут кучу вариантов можно себе представить. Программа могла десятки лет работать "без ошибок", но постоянно выдавать неверные результаты. Причём "плавающе" неверные. Бухгалтерия регулярно была бы на нервах и срывалась бы на лентяев IT-шников. IT-шники срывались бы на дураков бухгалтеров. И т.д. и т.п.
А всё потому, что была в программе неверная работа с памятью, которую невозможно заметить пока не такая работа не привела к обращению к памяти, которая данному процессу не принадлежит!
Wadimka (2012-01-29 00:28:00) [6]Нашел шо за нахер!!!!!!!!!
благодарю всех за участие
в двух структурах было integer, а числа приходили Int64
Inovet (2012-01-28 22:57:00) [7]> [35] Wadimka (28.01.12 22:36)
> Нихрена при Range checking не вылетает
Не повезло значит. Лучше бы вылетало.
Wadimka (2012-01-28 22:36:00) [8]Нихрена при Range checking не вылетает
Anatoly Podgoretsky (2012-01-26 21:38:00) [9]В настройках компилятора
Wadimka (2012-01-26 21:31:00) [10]>>>А включить проверку границ тоже без толку?
а вот тут поподробнее, как и где ее включить?
Anatoly Podgoretsky (2012-01-26 21:30:00) [11]> Wadimka (26.01.2012 19:59:31) [31]
А включить проверку границ тоже без толку?
Wadimka (2012-01-26 19:59:00) [12]да код бестолку скидывать, если так то там оклоло 30 массивов и 7 поток их обрабатывают, буду искать
sniknik (2012-01-26 19:30:00) [13]> т.е. вы хотите сказать, что
у тебя ошибка в программе... все остальное домыслы и предположения. и уж точно никто, не видя кода, не станет говорить что, у тебя там, на что "залазиет".
Inovet (2012-01-26 19:19:00) [14]> [28] Wadimka (26.01.12 19:15)
> что где-то в других страктурах при их заполнении выходит
> за пределы своих массивов, а эта новая структура на нее
> залазиет?
Она влияет на расположение звёзд в памяти. Ошибка была, но до поры до времени не проявлялась, потом бы вылезла через год-другой, а так вот ты её увидел раньше.
Wadimka (2012-01-26 19:15:00) [15]т.е. вы хотите сказать, что где-то в других страктурах при их заполнении выходит за пределы своих массивов, а эта новая структура на нее залазиет?
Германн (2012-01-26 12:40:00) [16]
> Программа компилится, но сразу вылетает по acces
Везет же некоторым. Какая-то фигня позволила обнаружить наличие неверной работы с памятью в программе ещё на этапе разработки.
Плохиш (2012-01-26 12:09:00) [17]
> RWolf © (26.01.12 10:53) [21]
> включить отладчик
Ну ты как маленький прям. Всем же известно, что отладчики, как и документации для полных лохов.
Inovet (2012-01-26 11:54:00) [18]> [19] Wadimka (26.01.12 10:49)
> 17 строка в том юните?
Так говорят, когда автор не приводит код в котором ошибка. Читай "ошибка неизвестно где, в другом месте", о чём тебе уже и сказали много раз, но ты игнорировал.
sniknik (2012-01-26 10:59:00) [19]> Search -> Find error ..
явного он там ничего не найдет, а связи, почему именно тут, не поймет. ИМХО.
sniknik (2012-01-26 10:58:00) [20]ты похоже считаешь, раз нет обращения то это и не использование...
но вот это - KDLoadNN:array of LKopmmn; уже использование, если используется структура HProbaGhj в которой оно написано.
не использование, это если вместе с внутренностью не использовать и общее. т.е. тут HProbaGhj.