|
TJclStackInfoList из библиотеки JclDebug (нестандартное использование исключений или ассертов)
|
|||
---|---|---|---|
#18+
У меня в программе много утечек памяти; я пробую их отловить с помощью ReportMemoryLeaksOnShutdown, но эта опция даёт недостаточно информации. Я решил сделать по своему и написать что-то вроде собственного “сборщика мусора”, о котором уже писал в другой теме: Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Я пробовал подключить JclDebug к моему проекту, но во-первых это не получается из-за какой-то несовместимости: библиотеке нужны некие ModuleInfo.EntryPoint, EnumProcessModules и ещё много того, что нет в этой самой библиотеке. Во-вторых, я не хочу подключать к проекту всю эту библиотеку – она сильно большая, мне нужен только класс TJclStackInfoList чтобы внедрить его в обработчик исключения (если и это вообще нужно). Если кто-нибудь работал с JclDebug – подскажите, как проще всего решить мою задачу? Как я уже сказал, мне вроде нужно только одно – чтобы мой собственный обработчик Application.OnException получал в e.StackTrace не пустую строку, как по умолчанию, а то, что есть в других ЯП (в .NET есть Exception.StackTrace и в Java есть Exception.getStackTrace). Или любое другое решение основной задачи - чтобы конструктор TSafeObject.Create как-то узнал (и мог передать объекту ProjectGarbageCollector) информацию, из какого участка кода он был вызван. Если не получится "красивое" решение с нестандартным использованием исключений или ассертов - придётся вставлять в разные участки кода "вызовы-маркеры", которые будет отслеживать и выводить в логе мой ProjectGarbageCollector. ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
16.12.2018, 13:30 |
|
|
start [/forum/topic.php?fid=2&fpage=5&tid=21073]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
21ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 228ms |
0 / 0 |