Вопросы по Delphi XE
От: Khimik  
Дата: 18.11.18 12:01
Оценка:
Я давно перешёл с Delphi 7 на Delphi XE 8, и долго не знал про важные новые фичи, в частности статические классы (если это корректный термин) и дженерики.
Есть ли ещё в новых версиях Delphi важные принципиально новые фичи, о которых полезно знать практически всем?
И ещё вопрос: если программа зависла (например бесконечный цикл), как найти код где этот цикл. Раньше в Delphi 7 я нажимал кнопку паузы, и среда разработки переходила в режим отладки, показывая место кода, исполняющегося в данный момент (именно кода паскаля а не ассемблера), и можно было далее нажимать F8 и проводить отладку. Сейчас же эта кнопка показывает асссемблерный код, и я не знаю как перейти из него в код, понятный для меня. Сейчас я для такой отладки ставлю breakpoint на подозрительном участке моего кода, в надежде что именно там есть зацикливание, и если это так, Delphi корректно перейдёт в режим отладки.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re: Вопросы по Delphi XE
От: Khimik  
Дата: 21.11.18 12:07
Оценка:
Возник ещё один вопрос. У меня при работе программы иногда случается out of memory. Видимо где-то не освобождаются динамические массивы, или не уничтожаются классы. Можно ли быстро проверить, где именно?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re: Вопросы по Delphi XE
От: RedApe Беларусь  
Дата: 21.11.18 13:07
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>Я давно перешёл с Delphi 7 на Delphi XE 8, и долго не знал про важные новые фичи, в частности статические классы (если это корректный термин) и дженерики.

K>Есть ли ещё в новых версиях Delphi важные принципиально новые фичи, о которых полезно знать практически всем?
K>И ещё вопрос: если программа зависла (например бесконечный цикл), как найти код где этот цикл. Раньше в Delphi 7 я нажимал кнопку паузы, и среда разработки переходила в режим отладки, показывая место кода, исполняющегося в данный момент (именно кода паскаля а не ассемблера), и можно было далее нажимать F8 и проводить отладку. Сейчас же эта кнопка показывает асссемблерный код, и я не знаю как перейти из него в код, понятный для меня. Сейчас я для такой отладки ставлю breakpoint на подозрительном участке моего кода, в надежде что именно там есть зацикливание, и если это так, Delphi корректно перейдёт в режим отладки.

Не спец по дельфи, но по идее когда исполнение остановилось, то где-то должно быть окошко со стеком, в котором можно пройтись по функциям/процедурам, вызыванным на уровень выше, и вот там уже где-то появится делфи код.

Второй уровень сложности: вполне возможно, что команда на остановку вызвана через отдельный поток исполнения. Тогда прежде всего нужно найти окошко с потоками и выбрать именно тот, где исполняется код (у каждого потока свой стек)
--
RedApe
Re[2]: Вопросы по Delphi XE
От: MBo  
Дата: 26.11.18 05:08
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Возник ещё один вопрос. У меня при работе программы иногда случается out of memory. Видимо где-то не освобождаются динамические массивы, или не уничтожаются классы. Можно ли быстро проверить, где именно?


Дин. массивы должны сами освобождаться, если с ними не играли на низком уровне.

А вообще: ReportMemoryLeaksOnShutdown
Re[3]: Вопросы по Delphi XE
От: Khimik  
Дата: 18.12.18 13:03
Оценка:
Здравствуйте, MBo, Вы писали:

MBo>Здравствуйте, Khimik, Вы писали:


K>>Возник ещё один вопрос. У меня при работе программы иногда случается out of memory. Видимо где-то не освобождаются динамические массивы, или не уничтожаются классы. Можно ли быстро проверить, где именно?


MBo>Дин. массивы должны сами освобождаться, если с ними не играли на низком уровне.


MBo>А вообще: ReportMemoryLeaksOnShutdown


Я теперь пользуюсь этой фичей, но мне всё равно не хватает лёгкого способа отловить старые накопившиеся баги. Такой способ появился бы, если бы я смог подключить JclDebug к своему проекту.

http://rsdn.org/forum/philosophy/7325231.1
Автор: Khimik
Дата: 15.12.18
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[4]: Вопросы по Delphi XE
От: RainBoy  
Дата: 26.12.18 01:57
Оценка:
EurekaLog
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.