Re[21]: Дамп стека при возникновении исключения
От: Sergey Россия  
Дата: 02.12.03 09:00
Оценка:
Hello, lav03!
You wrote on Tue, 02 Dec 2003 08:41:11 GMT:

S>> Эта фигня происходит из-за того, что функция ZwGetContextThread

S>> скомпилена без кадра стека. Поэтому IntelStackWalk хватает кадр
S>> предыдущей функции (foo), из которого вытаскивает адрес возврата на
S>> OnBnClickedButton1(). В результате foo в дамп не попадает.

l> А ведь если отключить оптимизацию, то foo() попадает в дамп.

Не верю. Ты наверное что-то перепутал.

l> Значит в этом случае кадр стека все же формируется?

Как это он сформируется для функции из ntdll? Я дизассемблером смотрел — нет там никакой установки ebp, почти сразу int 2E идет.

l> Можно ли как нибудь заставить функцию кадр стека формироваться, обхитрить?

Ну так я говорил уже — опция компилятора /Oy- после опций оптимизации, и все будет почти как надо.

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.8 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.