![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отладка загрузки модулей - initialization..finalization
Eraser © (2010-09-01 23:14:00)Такая проблема. При запуске приложения под Wine возникает "Runtime error 255 at 7BC3ED78". Ошибка происходит до первой строчки кода в dpr файле, соответственно она где-то в загрузке модулей. Каким-то образом это связано с COM. С наскока выяснить не удалось, при ближайшем рассмотрении тоже безрезультатно. Логи wine ничего внятного не говорят.
Подскажите, как грамотно отладить секции инициализации юнитов, в т.ч. генофондовских?
Плохиш (2010-09-04 12:03:00) [1]
> Германн © (04.09.10 02:46) [24]
Описание я понял так, что если чего-то там не так и не понятно случилось, то вываливается системная ошибка 255 и разбирайтесь сами что не так ;-)
Eraser (2010-09-04 02:53:00) [2]> а wine чего-то там не до инициализирует
так оно и есть.
но все равно пока внедрение wine откладывается на неопределенный срок, cryptoapi пока там отказывается работать в той реализации что есть.
Германн (2010-09-04 02:46:00) [3]
> я в [11] ссылку давал на описание ошибки
Что-то мне кажется (крестился и не раз), что это описание весьма старое. А Eraser, по своему роду работ, всегда использует последние версии Дельфи и сравнительно современные компьютеры.
Если столь древнее описание (для Д3 и S3) годится и сейчас, то просто нет слов.
Плохиш (2010-09-04 02:15:00) [4]
> Германн © (04.09.10 02:11) [22]
> Что-то как-то не верится, что Eraser © "влез не спросясь"
> в область драйверов на оборудование.
Это не он, а wine чего-то там не до инициализирует, я в [11] ссылку давал на описание ошибки.
Германн (2010-09-04 02:11:00) [5]
> Плохиш © (04.09.10 01:57) [21]
>
>
> > Eraser © (03.09.10 20:43) [20]
> >
> > > [15] Плохиш © (03.09.10 12:01)
> >
> > так меня удивляет тот момент, что в win никаких сообщений
> > о крахе или исключениях не было
>
> Так в win, выходит, что никакого исключения и не было. Там
> с драйверами на оборудование всё в порядке.
>
Что-то как-то не верится, что Eraser © "влез не спросясь" в область драйверов на оборудование.
Плохиш (2010-09-04 01:57:00) [6]
> Eraser © (03.09.10 20:43) [20]
>
> > [15] Плохиш © (03.09.10 12:01)
>
> так меня удивляет тот момент, что в win никаких сообщений
> о крахе или исключениях не было
Так в win, выходит, что никакого исключения и не было. Там с драйверами на оборудование всё в порядке.
Eraser (2010-09-03 20:43:00) [7]> [15] Плохиш © (03.09.10 12:01)
так меня удивляет тот момент, что в win никаких сообщений о крахе или исключениях не было ;-)
Игорь Шевченко (2010-09-03 20:40:00) [8]
> Порой длинные indirect обращения
Result := TApplicationConfigurationManager.GetInstance.ExceptionManager
глаза сломаешь, пока такое прочтешь
Eraser (2010-09-03 20:37:00) [9]Для синглтонов в принципе можно использовать глобальные переменные, хотя в последних версиях языка появилась возможность обойтись без этого.
oxffff (2010-09-03 20:21:00) [10]
> Это девиз :)
>
> Глобальная переменная д.б. одна - Application,
> а все остальное - в его полях/свойствах.
Порой длинные indirect обращения или протаскание дополнительных параметров в методы может плохо ударить по производительности.
Поэтому во всем должна быть мера. IMHO
Leonid Troyanovsky (2010-09-03 16:41:00) [11]
> oxffff © (03.09.10 09:31) [13]
> Где можно ознакомится с этой аксиомой?
Это девиз :)
Глобальная переменная д.б. одна - Application,
а все остальное - в его полях/свойствах.
--
Regards, LVT.
Плохиш (2010-09-03 12:01:00) [12]
> Eraser © (03.09.10 02:21) [12]
>
> в том то и дело, что обработанное.
И кто ж его обработал?
try..finally - это не обработка исключения, читай описание.
Игорь Шевченко (2010-09-03 10:13:00) [13]
> Казалось бы, что это задача компилятора.
компилятор формирует сегмент .bss, под windows он обнуляется при загрузке
oxffff (2010-09-03 09:31:00) [14]
> Leonid Troyanovsky © (02.09.10 22:38) [9]
>
> Хотя, конечно, глобальные переменные - MD.
Где можно ознакомится с этой аксиомой?
Eraser (2010-09-03 02:21:00) [15]в том то и дело, что обработанное. сбило с толку то, что в windows, в т.ч. под отладчиком все OK.
Плохиш (2010-09-03 00:28:00) [16]
> Eraser © (02.09.10 23:05) [10]
>
> > [8] Игорь Шевченко © (02.09.10 18:08)
>
> там в другом была основная проблема - при загрузке в одной
> их секций inialization возникало исключение, хотя оно и
> было обернутов try..finally в Wine приводило к краху приложения
Ничего удивительного, необработанное исключение.
http://www.esanu.name/delphi/IDE/Runtime%20Error%20255.html
Eraser (2010-09-02 23:05:00) [17]> [8] Игорь Шевченко © (02.09.10 18:08)
там в другом была основная проблема - при загрузке в одной их секций inialization возникало исключение, хотя оно и было обернутов try..finally в Wine приводило к краху приложения, описанном в 1 сообщении.
но, далее столкнулся с тем, что cryptoapi под Wine находиться еще в не рабочем состоянии, увы.
Leonid Troyanovsky (2010-09-02 22:38:00) [18]
> Игорь Шевченко © (02.09.10 18:08) [8]
> под Wine не инициализируются глобальные переменные нулями
Казалось бы, что это задача компилятора.
Хотя, конечно, глобальные переменные - MD.
--
Regards, LVT.
Игорь Шевченко (2010-09-02 18:08:00) [19]
> При запуске приложения под Wine возникает
под Wine не инициализируются глобальные переменные нулями
Eraser (2010-09-02 04:42:00) [20]> [6] Германн © (02.09.10 03:50)
Да внедрять её в проект я и не собираюсь, там не та специфика, эврика не пойдет, а вот решить сабжевую проблему помогла. Для тестирования самое оно.