1 | #ifndef MMBT_H |
---|
2 | #define MMBT_H |
---|
3 | /**************************************** |
---|
4 | * Computer Algebra System SINGULAR * |
---|
5 | ****************************************/ |
---|
6 | /* $Id: mmbt.h,v 1.3 1999-03-19 17:42:29 obachman Exp $ */ |
---|
7 | /* |
---|
8 | * ABSTRACT: backtrace: part of memory subsystem (for linux/elf) |
---|
9 | * needed programs: - mprpc to set the variable MPRPC |
---|
10 | * - mprdem: must be in the current directory |
---|
11 | * - mprnm: must be in thje current directory |
---|
12 | * files: - Singularg: the name of the executable |
---|
13 | * - nm.log: temp. file for the map address -> name |
---|
14 | */ |
---|
15 | |
---|
16 | #ifdef MTRACK |
---|
17 | #ifndef __OPTIMIZE__ |
---|
18 | /* does only work in debug mode: |
---|
19 | * requires that -fomit-frame-pointer is not given |
---|
20 | */ |
---|
21 | #if defined(linux) && defined(__i386__) |
---|
22 | |
---|
23 | int mmTrackInit (); /* init. of global variables */ |
---|
24 | void mmTrack (unsigned long *bt_stack); /* store the current stack into bt_stack */ |
---|
25 | |
---|
26 | void mmP2cNameInit(); /* init. of PC -> Name resolution */ |
---|
27 | char * mmP2cName(unsigned long p); /* PC -> Name resolution */ |
---|
28 | void mmPrintStack(unsigned long *stack, int mm); |
---|
29 | void mmDBPrintStack(void* memblock, int mm); |
---|
30 | void mmDBPrintStackFrames(void* memblock, int start, int end); |
---|
31 | void mmPrintStackFrames(unsigned long *bt_stack, int start, int end, int mm); |
---|
32 | |
---|
33 | #endif /* linux, i386 */ |
---|
34 | #endif /* not optimize */ |
---|
35 | #endif /* MTRACK */ |
---|
36 | |
---|
37 | #endif /* MMBT_H */ |
---|