xref: /minix/minix/lib/libsys/stacktrace.c (revision 7f5f010b)
1 /*
2 stacktrace.c
3 
4 Created:	Jan 19, 1993 by Philip Homburg
5 
6 Copyright 1995 Philip Homburg
7 */
8 
9 #include <stdio.h>
10 #include <string.h>
11 
12 typedef unsigned int reg_t;
13 
14 extern reg_t get_bp(void);
15 
16 void util_stacktrace(void)
17 {
18 #if USE_SYSDEBUG
19 	reg_t bp, pc, hbp;
20 
21 	bp= get_bp();
22 	while(bp)
23 	{
24 		pc= ((reg_t *)bp)[1];
25 		hbp= ((reg_t *)bp)[0];
26 		printf("0x%lx ", (unsigned long) pc);
27 		if (hbp != 0 && hbp <= bp)
28 		{
29 			printf("0x%lx ", (unsigned long) -1);
30 			break;
31 		}
32 		bp= hbp;
33 	}
34 	printf("\n");
35 #endif /* USE_SYSDEBUG */
36 }
37 
38