Changeset 105efec in git
- Timestamp:
- Mar 19, 1999, 5:00:08 PM (25 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 6e5833a152795ed30010fc0beaaad4726c3f070a
- Parents:
- 7df2efebb313231238a051a876d8a3dd8d3b1e4c
- Location:
- Singular
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/Makefile.in
r7df2ef r105efec 184 184 185 185 186 mmtables.inc: mmtables.c mmprivate.h 186 mmtables.inc: mmtables.c mmprivate.h mod2.h 187 187 ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${DEFS} \ 188 188 -DGENERATE_INDEX_TABLE -DHAVE_INDEX_TABLE mmtables.c -o mmtables -
Singular/mmalloc.c
r7df2ef r105efec 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mmalloc.c,v 1.1 2 1999-02-03 13:18:59 obachmanExp $ */4 /* $Id: mmalloc.c,v 1.13 1999-03-19 16:00:04 Singular Exp $ */ 5 5 6 6 /* … … 21 21 #include "mmemory.h" 22 22 #include "mmprivate.h" 23 #ifdef MTRACK 24 #include "mmbt.h" 25 #endif 23 26 24 27 #undef HAVE_ASSUME … … 184 187 mmAllocHeap((void*) result, heap); 185 188 #endif 189 190 #ifdef MTRACK 191 mmTrack(result->bt_stack); 192 #endif 186 193 187 194 if (! mmCheckDBMCB(result, SizeFromRealSize(mmGetHeapBlockSize(heap)), … … 273 280 274 281 mmFillDBMCB(result, size, NULL, MM_USEDFLAG, fname, lineno); 282 283 #ifdef MTRACK 284 mmTrack(result->bt_stack); 285 #endif 275 286 276 287 return (void*) &(result->data); -
Singular/mmbt.c
r7df2ef r105efec 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mmbt.c,v 1. 6 1999-03-18 17:00:15 Singular Exp $ */4 /* $Id: mmbt.c,v 1.7 1999-03-19 16:00:05 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: backtrace: part of memory subsystem (for linux/elf) … … 33 33 #if defined(linux) && defined(__i386__) 34 34 35 static u long mm_lowpc=0, mm_highpc=0;35 static unsigned long mm_lowpc=0, mm_highpc=0; 36 36 37 37 extern int etext (); … … 46 46 #endif 47 47 48 #define entrypc(pc) ((pc >= mm_lowpc && pc <= mm_highpc) || pc >= (u long) &etext || (pc < 4096))48 #define entrypc(pc) ((pc >= mm_lowpc && pc <= mm_highpc) || pc >= (unsigned long) &etext || (pc < 4096)) 49 49 #define getfp(ap) (ap-2-SLOP) 50 50 #define getpc(fp) (fp[1+SLOP]) … … 63 63 } 64 64 65 void mmTrack (u long *bt_stack)65 void mmTrack (unsigned long *bt_stack) 66 66 { 67 u long pc, *fp = getfp ((ulong *) &bt_stack);67 unsigned long pc, *fp = getfp ((unsigned long *) &bt_stack); 68 68 int i=0; 69 69 70 70 if (mm_lowpc==0) mmTrackInit(); 71 71 72 while ((fp!=NULL) && ((u long)fp>4095) && *fp && (pc = getpc (fp))72 while ((fp!=NULL) && ((unsigned long)fp>4095) && *fp && (pc = getpc (fp)) 73 73 && !entrypc (pc) && (i<BT_MAXSTACK)) 74 74 { 75 75 bt_stack[i]=pc; i++; 76 fp = (u long *) *fp;76 fp = (unsigned long *) *fp; 77 77 } 78 78 while(i<BT_MAXSTACK) … … 84 84 struct 85 85 { 86 u long p;86 unsigned long p; 87 87 char *name; 88 88 } p2n[MAX_PROCS_BT]; 89 89 90 static int mm_p2n_max ;90 static int mm_p2n_max = -1; 91 91 void mmP2cNameInit() 92 92 { … … 110 110 mm_p2n_max=i; 111 111 } 112 char * mmP2cName(u long p)112 char * mmP2cName(unsigned long p) 113 113 { 114 114 int a=0; 115 115 int e=mm_p2n_max; 116 116 int i; 117 if (mm_p2n_max == -1) 118 mmP2cNameInit(); 117 119 loop 118 120 { … … 146 148 } 147 149 148 void mmPrintStack(u long *bt_stack) /* print stack */150 void mmPrintStack(unsigned long *bt_stack) /* print stack */ 149 151 { 150 152 int i=0; 153 PrintS(" "); 151 154 do 152 155 { 153 Print(":%x(%s)",bt_stack[i],mmP2cName(bt_stack[i])); 156 char *s; 157 fprintf( stderr,":%x",bt_stack[i]); 158 s=mmP2cName(bt_stack[i]); 159 if (s!=NULL) 160 fprintf( stderr,"/%s",s); 154 161 i++; 155 162 } while ((i<BT_MAXSTACK) && (bt_stack[i]!=0)); 156 PrintLn();163 fprintf( stderr,"\n"); 157 164 } 158 165 #endif /* linux, i386 */ -
Singular/mmbt.h
r7df2ef r105efec 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: mmbt.h,v 1. 1 1999-03-18 16:30:52Singular Exp $ */6 /* $Id: mmbt.h,v 1.2 1999-03-19 16:00:05 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: backtrace: part of memory subsystem (for linux/elf) … … 21 21 #if defined(linux) && defined(__i386__) 22 22 23 #undef ulong24 #define ulong unsigned long25 26 23 int mmTrackInit (); /* init. of global variables */ 27 void mmTrack (u long *bt_stack); /* store the current stack into bt_stack */24 void mmTrack (unsigned long *bt_stack); /* store the current stack into bt_stack */ 28 25 29 26 void mmP2cNameInit(); /* init. of PC -> Name resolution */ 30 char * mmP2cName(u long p); /* PC -> Name resolution */31 void mmPrintStack(u long *bt_stack); /* print stack */27 char * mmP2cName(unsigned long p); /* PC -> Name resolution */ 28 void mmPrintStack(unsigned long *bt_stack); /* print stack */ 32 29 33 30 #endif /* linux, i386 */ -
Singular/mmcheck.c
r7df2ef r105efec 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mmcheck.c,v 1. 4 1999-03-18 17:00:15Singular Exp $ */4 /* $Id: mmcheck.c,v 1.5 1999-03-19 16:00:06 Singular Exp $ */ 5 5 6 6 /* … … 21 21 #include "mmpage.h" 22 22 #include "mmheap.h" 23 #ifdef MTRACK 24 #include "mmbt.h" 25 #endif 23 26 24 27 … … 168 171 memset(what->front_pattern, MM_FRONT_PATTERN, MM_NUMBER_OF_FRONT_PATTERNS); 169 172 memset((char*) addr + size, MM_BACK_PATTERN, DebugOffsetBack); 170 #ifdef MTRACK171 mmTrack(what->bt_stack);172 #endif173 173 } 174 174 -
Singular/mmisc.c
r7df2ef r105efec 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mmisc.c,v 1. 3 1999-03-19 14:18:02 obachmanExp $ */4 /* $Id: mmisc.c,v 1.4 1999-03-19 16:00:07 Singular Exp $ */ 5 5 6 6 /* … … 13 13 #include "mmpage.h" 14 14 #include "febase.h" 15 #ifdef MTRACK 16 #include "mmbt.h" 17 #endif 15 18 16 19 static int mm_specIndex = 0; … … 143 146 while (what!=NULL) 144 147 { 145 (void)fprintf( stderr, "%d bytes at %p in: %s:%d\n",148 fprintf( stderr, "%d bytes at %p in: %s:%d", 146 149 (int)what->size, what, what->fname, what->lineno); 150 #ifdef MTRACK 151 mmPrintStack(what->bt_stack); 152 #else 153 fprintf( stderr, "\n"); 154 #endif 147 155 what=what->next; 148 156 } -
Singular/mmprivate.h
r7df2ef r105efec 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: mmprivate.h,v 1. 6 1999-03-19 14:18:03 obachmanExp $ */6 /* $Id: mmprivate.h,v 1.7 1999-03-19 16:00:07 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT … … 10 10 #include "structs.h" 11 11 #include "mmheap.h" 12 13 #define MAX_BLOCK_SIZE (((SIZE_OF_HEAP_PAGE) / 16)*4) 12 14 13 15 #define INDEX_ENTRY_T char … … 32 34 struct DBMCB * next; 33 35 struct DBMCB * prev; 34 #ifdef MTRACK35 unsigned long bt_stack[BT_STACKMAX];36 #endif37 36 char * fname; 37 unsigned long bt_stack[BT_MAXSTACK]; 38 38 size_t size; 39 39 int lineno; -
Singular/mod2.h.in
r7df2ef r105efec 273 273 extern int pShortOut; 274 274 275 /* the maximal level of stacks to remembre in debug (MTRACK) mode */ 276 #define BT_MAXSTACK 10 277 275 278 #ifdef DO_PROFILE 276 279 /* define to enable explicit profiling of some crucial inline … … 330 333 #endif 331 334 332 333 335 /* define MTRACK for allowing to keep track of Alloc/Free with a backtrace */ 334 336 /* #define MTRACK */ 337 335 338 336 339 /* define PDEBUG checking polys, undefine otherwise */
Note: See TracChangeset
for help on using the changeset viewer.