003 File Manager
Current Path:
/usr/src/sys/ddb
usr
/
src
/
sys
/
ddb
/
📁
..
📄
db_access.c
(2.43 KB)
📄
db_access.h
(1.37 KB)
📄
db_break.c
(7.28 KB)
📄
db_break.h
(2.03 KB)
📄
db_capture.c
(10.17 KB)
📄
db_command.c
(21.03 KB)
📄
db_command.h
(1.7 KB)
📄
db_examine.c
(7.2 KB)
📄
db_expr.c
(7.91 KB)
📄
db_input.c
(8.11 KB)
📄
db_lex.c
(7.2 KB)
📄
db_lex.h
(3.28 KB)
📄
db_main.c
(7.1 KB)
📄
db_output.c
(8.03 KB)
📄
db_output.h
(1.39 KB)
📄
db_print.c
(2.58 KB)
📄
db_ps.c
(13.33 KB)
📄
db_run.c
(9.74 KB)
📄
db_script.c
(15.49 KB)
📄
db_sym.c
(10.72 KB)
📄
db_sym.h
(3.49 KB)
📄
db_textdump.c
(16.53 KB)
📄
db_thread.c
(4.22 KB)
📄
db_variables.c
(3.67 KB)
📄
db_variables.h
(2.01 KB)
📄
db_watch.c
(6.71 KB)
📄
db_watch.h
(1.45 KB)
📄
db_write_cmd.c
(2.12 KB)
📄
ddb.h
(10.09 KB)
Editing: db_print.c
/*- * SPDX-License-Identifier: MIT-CMU * * Mach Operating System * Copyright (c) 1991,1990 Carnegie Mellon University * All Rights Reserved. * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided that both the copyright * notice and this permission notice appear in all copies of the * software, derivative works or modified versions, and any portions * thereof, and that both notices appear in supporting documentation. * * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. * * Carnegie Mellon requests users of this software to return to * * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU * School of Computer Science * Carnegie Mellon University * Pittsburgh PA 15213-3890 * * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * */ /* * Author: David B. Golub, Carnegie Mellon University * Date: 7/90 */ /* * Miscellaneous printing. */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/kdb.h> #include <sys/proc.h> #include <machine/pcb.h> #include <ddb/ddb.h> #include <ddb/db_variables.h> #include <ddb/db_sym.h> void db_show_regs(db_expr_t _1, bool _2, db_expr_t _3, char *modif) { struct trapframe *oldtf; struct db_variable *regp; db_expr_t value, offset; const char *name; /* * The 'u' modifier instructs us to print the previous trapframe, most * often containing state from userspace. This is done by temporarily * switching out kdb_frame. * * NB: curthread is used instead of kdb_thread, so that behaviour is * consistent with regular `show registers`, which always prints * curthread's trapframe. */ oldtf = kdb_frame; if (modif[0] == 'u') { if (curthread->td_frame == NULL || curthread->td_frame == oldtf) { db_printf("previous trapframe unavailable"); return; } kdb_frame = curthread->td_frame; } for (regp = db_regs; regp < db_eregs; regp++) { if (!db_read_variable(regp, &value)) continue; db_printf("%-12s%#*lr", regp->name, (int)(sizeof(unsigned long) * 2 + 2), (unsigned long)value); db_find_xtrn_sym_and_offset((db_addr_t)value, &name, &offset); if (name != NULL && offset <= (unsigned long)db_maxoff && offset != value) { db_printf("\t%s", name); if (offset != 0) db_printf("+%+#lr", (long)offset); } db_printf("\n"); } db_print_loc_and_inst(PC_REGS()); kdb_frame = oldtf; }
Upload File
Create Folder