а в теории могла бы быть возможность иметь доступ к переменным (except.inc)?
ThreadVar
ExceptAddrStack : PExceptAddr;
ExceptObjectStack : PExceptObject;
т.е. я конечно могу добавить пару функций в objpash.inc/except.inc чтото типа:
function GetExceptAddrStack: PPointer;
begin ...
Найдено 3 результата
- 26.09.2011 11:27:24
- Форум: Free Pascal Compiler
- Тема: Обработка исключений
- Ответы: 5
- Просмотры: 4233
- 25.09.2011 22:05:49
- Форум: Free Pascal Compiler
- Тема: Обработка исключений
- Ответы: 5
- Просмотры: 4233
Re: Обработка исключений
Спасибо, Сергей. до меня кажется дошло!
SetJmp считывает адрес следующей команды после нее в Jmp_Buf. и при исключении управление передается по этому адресу. А там как раз стоит проверка условия
test %eax, %eax
не радует только немного убогий ассемблерный отладчик в Lazarus.. а как посмотреть ...
SetJmp считывает адрес следующей команды после нее в Jmp_Buf. и при исключении управление передается по этому адресу. А там как раз стоит проверка условия
test %eax, %eax
не радует только немного убогий ассемблерный отладчик в Lazarus.. а как посмотреть ...
- 25.09.2011 20:20:38
- Форум: Free Pascal Compiler
- Тема: Обработка исключений
- Ответы: 5
- Просмотры: 4233
Обработка исключений
Здрасте)
Хочу разобраться как FPC обрабатывает исключения. Методом тыка и Ctrl+Alt+D нашел, что для try используется fpc_PushExceptAddr, и в конце концов (когда надо убрать фрейм) - fpc_PopAddrStack. но не могу понять где именно передается адрес обработчика. В Delphi было явно написано
push ...
Хочу разобраться как FPC обрабатывает исключения. Методом тыка и Ctrl+Alt+D нашел, что для try используется fpc_PushExceptAddr, и в конце концов (когда надо убрать фрейм) - fpc_PopAddrStack. но не могу понять где именно передается адрес обработчика. В Delphi было явно написано
push ...
