258 |
/* */ |
/* */ |
259 |
/*********************************/ |
/*********************************/ |
260 |
|
|
|
#ifdef SAVE_CALL_CHAIN |
|
|
|
|
|
/* Fill in the pc and argument information for up to NFRAMES of my */ |
|
|
/* callers. Ignore my frame and my callers frame. */ |
|
|
struct callinfo; |
|
|
void GC_save_callers GC_PROTO((struct callinfo info[NFRAMES])); |
|
|
|
|
|
void GC_print_callers GC_PROTO((struct callinfo info[NFRAMES])); |
|
|
|
|
|
#endif |
|
|
|
|
261 |
#ifdef NEED_CALLINFO |
#ifdef NEED_CALLINFO |
262 |
struct callinfo { |
struct callinfo { |
263 |
word ci_pc; /* Caller, not callee, pc */ |
word ci_pc; /* Caller, not callee, pc */ |
271 |
}; |
}; |
272 |
#endif |
#endif |
273 |
|
|
274 |
|
#ifdef SAVE_CALL_CHAIN |
275 |
|
|
276 |
|
/* Fill in the pc and argument information for up to NFRAMES of my */ |
277 |
|
/* callers. Ignore my frame and my callers frame. */ |
278 |
|
void GC_save_callers GC_PROTO((struct callinfo info[NFRAMES])); |
279 |
|
|
280 |
|
void GC_print_callers GC_PROTO((struct callinfo info[NFRAMES])); |
281 |
|
|
282 |
|
#endif |
283 |
|
|
284 |
|
|
285 |
/*********************************/ |
/*********************************/ |
286 |
/* */ |
/* */ |