StackWalk() and SetUnhandledExceptionFilter() functions problems under Win2K and WinXP...

Hi everybody.

Excuse me, perhaps this question is kinda offtopic.
Our development team has some problems using StackWalk() and
SetUnhandledExceptionFilter() functions under Win2K and WinXP. I’ll describe
this problem step by step:

  1. EXE file contains “Line Numbers Only” debug info;
  2. Under WinXP the SetUnhandledExceptionFilter() function is not called
    sometimes. At the same time the StackWalk() function shows nothing at all.
  3. Under Win2K the SetUnhandledExceptionFilter() function is always called,
    but sometimes the StackWalk() function doesn’t show stack trace properly.

Maybe you have some explanation of this strange behavior. Any help and
suggestions will be highly appreciated and helpful. Thanks beforehand.

Konstantin Manurin (aka NizeG)
Programmer
Nival Interactive
mailto:xxxxx@nival.com

10a bld. 5, 1st Volokolamsky proezd
Moscow 123060 Russia
Tel: +7 (095) 363-9630
Tel: +7 (095) 363 9636
http://www.nival.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> 1. EXE file contains “Line Numbers Only” debug info;

  1. Under WinXP the SetUnhandledExceptionFilter() function is not called
    sometimes. At the same time the StackWalk() function shows nothing at all.
  2. Under Win2K the SetUnhandledExceptionFilter() function is always called,
    but sometimes the StackWalk() function doesn’t show stack trace properly.

This is by design.
FPO (Frame Pointer Omission) debug info is often necessary for stack walking.
The thing is that the compiler sometimes omits the

push ebp
mov ebp, asp

prolog for speed, thus the need for extra special kind of debug info to walk the stack over such functions.

Max