Deleted Added
full compact
db_trace.c (103646) db_trace.c (104435)
1/* $FreeBSD: head/sys/powerpc/powerpc/db_trace.c 103646 2002-09-19 18:46:29Z jhb $ */
1/* $FreeBSD: head/sys/powerpc/powerpc/db_trace.c 104435 2002-10-04 01:19:18Z grehan $ */
2/* $NetBSD: db_trace.c,v 1.20 2002/05/13 20:30:09 matt Exp $ */
3/* $OpenBSD: db_trace.c,v 1.3 1997/03/21 02:10:48 niklas Exp $ */
4
5/*
6 * Mach Operating System
7 * Copyright (c) 1992 Carnegie Mellon University
8 * All Rights Reserved.
9 *

--- 14 unchanged lines hidden (view full) ---

24 * Carnegie Mellon University
25 * Pittsburgh PA 15213-3890
26 *
27 * any improvements or extensions that they make and grant Carnegie Mellon
28 * the rights to redistribute these changes.
29 */
30
31#include <sys/param.h>
2/* $NetBSD: db_trace.c,v 1.20 2002/05/13 20:30:09 matt Exp $ */
3/* $OpenBSD: db_trace.c,v 1.3 1997/03/21 02:10:48 niklas Exp $ */
4
5/*
6 * Mach Operating System
7 * Copyright (c) 1992 Carnegie Mellon University
8 * All Rights Reserved.
9 *

--- 14 unchanged lines hidden (view full) ---

24 * Carnegie Mellon University
25 * Pittsburgh PA 15213-3890
26 *
27 * any improvements or extensions that they make and grant Carnegie Mellon
28 * the rights to redistribute these changes.
29 */
30
31#include <sys/param.h>
32#include <sys/systm.h>
32#include <sys/proc.h>
33#include <sys/user.h>
34
35#include <vm/vm.h>
36#include <vm/pmap.h>
37#include <vm/vm_extern.h>
38
39#include <machine/db_machdep.h>
40#include <machine/spr.h>
41#include <machine/trap.h>
42
43#include <ddb/ddb.h>
44#include <ddb/db_access.h>
45#include <ddb/db_sym.h>
46#include <ddb/db_variables.h>
47
48struct db_variable db_regs[] = {
33#include <sys/proc.h>
34#include <sys/user.h>
35
36#include <vm/vm.h>
37#include <vm/pmap.h>
38#include <vm/vm_extern.h>
39
40#include <machine/db_machdep.h>
41#include <machine/spr.h>
42#include <machine/trap.h>
43
44#include <ddb/ddb.h>
45#include <ddb/db_access.h>
46#include <ddb/db_sym.h>
47#include <ddb/db_variables.h>
48
49struct db_variable db_regs[] = {
49 { "r0", (long *)&ddb_regs.r[0], FCN_NULL },
50 { "r1", (long *)&ddb_regs.r[1], FCN_NULL },
51 { "r2", (long *)&ddb_regs.r[2], FCN_NULL },
52 { "r3", (long *)&ddb_regs.r[3], FCN_NULL },
53 { "r4", (long *)&ddb_regs.r[4], FCN_NULL },
54 { "r5", (long *)&ddb_regs.r[5], FCN_NULL },
55 { "r6", (long *)&ddb_regs.r[6], FCN_NULL },
56 { "r7", (long *)&ddb_regs.r[7], FCN_NULL },
57 { "r8", (long *)&ddb_regs.r[8], FCN_NULL },
58 { "r9", (long *)&ddb_regs.r[9], FCN_NULL },
59 { "r10", (long *)&ddb_regs.r[10], FCN_NULL },
60 { "r11", (long *)&ddb_regs.r[11], FCN_NULL },
61 { "r12", (long *)&ddb_regs.r[12], FCN_NULL },
62 { "r13", (long *)&ddb_regs.r[13], FCN_NULL },
63 { "r14", (long *)&ddb_regs.r[14], FCN_NULL },
64 { "r15", (long *)&ddb_regs.r[15], FCN_NULL },
65 { "r16", (long *)&ddb_regs.r[16], FCN_NULL },
66 { "r17", (long *)&ddb_regs.r[17], FCN_NULL },
67 { "r18", (long *)&ddb_regs.r[18], FCN_NULL },
68 { "r19", (long *)&ddb_regs.r[19], FCN_NULL },
69 { "r20", (long *)&ddb_regs.r[20], FCN_NULL },
70 { "r21", (long *)&ddb_regs.r[21], FCN_NULL },
71 { "r22", (long *)&ddb_regs.r[22], FCN_NULL },
72 { "r23", (long *)&ddb_regs.r[23], FCN_NULL },
73 { "r24", (long *)&ddb_regs.r[24], FCN_NULL },
74 { "r25", (long *)&ddb_regs.r[25], FCN_NULL },
75 { "r26", (long *)&ddb_regs.r[26], FCN_NULL },
76 { "r27", (long *)&ddb_regs.r[27], FCN_NULL },
77 { "r28", (long *)&ddb_regs.r[28], FCN_NULL },
78 { "r29", (long *)&ddb_regs.r[29], FCN_NULL },
79 { "r30", (long *)&ddb_regs.r[30], FCN_NULL },
80 { "r31", (long *)&ddb_regs.r[31], FCN_NULL },
81 { "iar", (long *)&ddb_regs.iar, FCN_NULL },
82 { "msr", (long *)&ddb_regs.msr, FCN_NULL },
83 { "lr", (long *)&ddb_regs.lr, FCN_NULL },
84 { "ctr", (long *)&ddb_regs.ctr, FCN_NULL },
85 { "cr", (long *)&ddb_regs.cr, FCN_NULL },
86 { "xer", (long *)&ddb_regs.xer, FCN_NULL },
50 { "r0", &ddb_regs.r[0], FCN_NULL },
51 { "r1", &ddb_regs.r[1], FCN_NULL },
52 { "r2", &ddb_regs.r[2], FCN_NULL },
53 { "r3", &ddb_regs.r[3], FCN_NULL },
54 { "r4", &ddb_regs.r[4], FCN_NULL },
55 { "r5", &ddb_regs.r[5], FCN_NULL },
56 { "r6", &ddb_regs.r[6], FCN_NULL },
57 { "r7", &ddb_regs.r[7], FCN_NULL },
58 { "r8", &ddb_regs.r[8], FCN_NULL },
59 { "r9", &ddb_regs.r[9], FCN_NULL },
60 { "r10", &ddb_regs.r[10], FCN_NULL },
61 { "r11", &ddb_regs.r[11], FCN_NULL },
62 { "r12", &ddb_regs.r[12], FCN_NULL },
63 { "r13", &ddb_regs.r[13], FCN_NULL },
64 { "r14", &ddb_regs.r[14], FCN_NULL },
65 { "r15", &ddb_regs.r[15], FCN_NULL },
66 { "r16", &ddb_regs.r[16], FCN_NULL },
67 { "r17", &ddb_regs.r[17], FCN_NULL },
68 { "r18", &ddb_regs.r[18], FCN_NULL },
69 { "r19", &ddb_regs.r[19], FCN_NULL },
70 { "r20", &ddb_regs.r[20], FCN_NULL },
71 { "r21", &ddb_regs.r[21], FCN_NULL },
72 { "r22", &ddb_regs.r[22], FCN_NULL },
73 { "r23", &ddb_regs.r[23], FCN_NULL },
74 { "r24", &ddb_regs.r[24], FCN_NULL },
75 { "r25", &ddb_regs.r[25], FCN_NULL },
76 { "r26", &ddb_regs.r[26], FCN_NULL },
77 { "r27", &ddb_regs.r[27], FCN_NULL },
78 { "r28", &ddb_regs.r[28], FCN_NULL },
79 { "r29", &ddb_regs.r[29], FCN_NULL },
80 { "r30", &ddb_regs.r[30], FCN_NULL },
81 { "r31", &ddb_regs.r[31], FCN_NULL },
82 { "iar", &ddb_regs.iar, FCN_NULL },
83 { "msr", &ddb_regs.msr, FCN_NULL },
84 { "lr", &ddb_regs.lr, FCN_NULL },
85 { "ctr", &ddb_regs.ctr, FCN_NULL },
86 { "cr", &ddb_regs.cr, FCN_NULL },
87 { "xer", &ddb_regs.xer, FCN_NULL },
87#ifdef PPC_IBM4XX
88#ifdef PPC_IBM4XX
88 { "dear", (long *)&ddb_regs.dear, FCN_NULL },
89 { "esr", (long *)&ddb_regs.esr, FCN_NULL },
90 { "pid", (long *)&ddb_regs.pid, FCN_NULL },
89 { "dear", &ddb_regs.dear, FCN_NULL },
90 { "esr", &ddb_regs.esr, FCN_NULL },
91 { "pid", &ddb_regs.pid, FCN_NULL },
91#endif
92};
93struct db_variable *db_eregs = db_regs + sizeof (db_regs)/sizeof (db_regs[0]);
94
95extern int trapexit[];
96extern int end[];
97
98/*
99 * Frame tracing.
100 */
92#endif
93};
94struct db_variable *db_eregs = db_regs + sizeof (db_regs)/sizeof (db_regs[0]);
95
96extern int trapexit[];
97extern int end[];
98
99/*
100 * Frame tracing.
101 */
101void
102db_stack_trace_print(addr, have_addr, count, modif, pr)
103 db_expr_t addr;
104 int have_addr;
105 db_expr_t count;
106 char *modif;
107 void (*pr) __P((const char *, ...));
102static void
103db_stack_trace_print(db_expr_t addr, int have_addr, db_expr_t count,
104 char *modif, void (*pr)(const char *, ...))
108{
109 db_addr_t frame, lr, caller, *args;
110 db_addr_t fakeframe[2];
111 db_expr_t diff;
105{
106 db_addr_t frame, lr, caller, *args;
107 db_addr_t fakeframe[2];
108 db_expr_t diff;
112 db_sym_t sym;
113 char *symname;
109 c_db_sym_t sym;
110 const char *symname;
114 boolean_t kernel_only = TRUE;
115 boolean_t trace_thread = FALSE;
116 boolean_t full = FALSE;
117
118 {
119 register char *cp = modif;
120 register char c;
121

--- 176 unchanged lines hidden ---
111 boolean_t kernel_only = TRUE;
112 boolean_t trace_thread = FALSE;
113 boolean_t full = FALSE;
114
115 {
116 register char *cp = modif;
117 register char c;
118

--- 176 unchanged lines hidden ---