home *** CD-ROM | disk | FTP | other *** search
- #include "kernel.h"
-
- #include "Desk.BackTrace.h"
-
- #include "Defs.h"
-
-
- int Desk_BackTrace_GetNestingDepth( void)
- {
- _kernel_unwindblock frame;
- char *language;
- int depth;
-
- for (
- Desk_BackTrace_SupportCurrentFrame( &frame), depth=0;
- _kernel_unwind( &frame, &language) > 0;
- depth++
- )
- {
- /*
- Have to calculate save_code_pointer - if NULL, we have reached end of
- stack. _kernel_unwind doesn't return <=0 sometimes when using CMHG.
- */
- unsigned int *Desk_save_code_pointer;
- unsigned int *fp;
-
- fp = (unsigned int*) (frame.fp & PCMask); if ( fp==NULL) break;
- Desk_save_code_pointer = (unsigned int*) (*fp & PCMask); if ( Desk_save_code_pointer==NULL) break;
- }
-
- return depth-1; /* don't include this function */
- }
-