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 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.