diff options
Diffstat (limited to 'nx-X11/util/memleak/getreti386.c')
-rw-r--r-- | nx-X11/util/memleak/getreti386.c | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/nx-X11/util/memleak/getreti386.c b/nx-X11/util/memleak/getreti386.c deleted file mode 100644 index 80038b7cc..000000000 --- a/nx-X11/util/memleak/getreti386.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * some bits copied from mprof by Ben Zorn - * - * Copyright (c) 1995 Jeffrey Hsu - */ - -/* $XFree86: xc/util/memleak/getreti386.c,v 3.2 1996/10/16 14:46:28 dawes Exp $ */ - -#define get_current_fp(first_local) ((unsigned)&(first_local) + 4) -#define prev_fp_from_fp(fp) *((unsigned *) fp) -#define ret_addr_from_fp(fp) *((unsigned *) (fp+4)) - -#ifdef __FreeBSD__ -#define CRT0_ADDRESS 0x10d3 -#endif -#if defined(__NetBSD__) || defined(__OpenBSD__) -#define CRT0_ADDRESS 0x109a -#endif -#ifdef linux -#define CRT0_ADDRESS 0x80482fc -#endif - -static unsigned long -junk (int *foo) -{ - return (unsigned long) foo + 4; -} - -void -getStackTrace(unsigned long *results, int max) -{ - - int first_local; - unsigned long fp, ret_addr; - - first_local = 0; - fp = junk(&first_local); - fp = get_current_fp(first_local); - ret_addr = ret_addr_from_fp(fp); - - while (ret_addr > CRT0_ADDRESS && max-- > 1) { - *results++ = ret_addr; - if (fp < (unsigned long) &first_local) - break; - fp = prev_fp_from_fp(fp); - if (!fp) - break; - if (fp < (unsigned long) &first_local) - break; - ret_addr = ret_addr_from_fp(fp); - } - *results++ = 0; - -} |