diff options
author | Thomas Schwinge <tschwinge@gnu.org> | 2007-01-06 14:27:21 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:27:01 +0200 |
commit | 3527b78c645a5898c7ddbeb3128a49c21514cb1c (patch) | |
tree | 98a1f9e14c75fff57920ec7df65322e8b813e64b /i386 | |
parent | dd445ab906de464eaee2b45f1722fa27a886b591 (diff) |
2006-01-06 Thomas Schwinge <tschwinge@gnu.org>
* ddb/db_break.c (db_delete_thread_breakpoint): Don't declare
`db_cond_free'.
* ddb/db_run.c: Include <ddb/db_cond.h>.
(db_stop_at_pc): Don't declare `db_cond_check'.
* ddb/db_input.c: Include <ddb/db_input.h>.
* ddb/db_macro.c: Include <ddb/db_macro.h>.
* ddb/db_trap.c: Include <ddb/db_trap.h>.
* i386/i386/db_interface.h: Include <machine/thread.h>.
* i386/i386/db_interface.c: Include <machine/db_interface.h>.
* i386/i386/db_machdep.h: Include <machine/db_interface.h>.
(db_check_access, db_phys_eq, db_task_name): Remove declarations.
2006-01-06 Barry deFreese <bddebian@comcast.net>
* ddb/db_aout.c: Include <ddb/db_output.h>.
* ddb/db_break.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_delete_cmd, db_breakpoint_cmd): Explicitly define untyped variables
as `int'.
* ddb/db_command.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_macro.h>.
* ddb/db_command.h (db_exec_cmd_nest): New declaration.
* ddb/db_cond.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_cond_cmd): Explicitly define untyped variable as `int'.
* ddb/db_cond.h: New file.
* ddb/db_examine.c: Include <machine/db_interface.h>,
<ddb/db_examine.h> and <ddb/db_expr.h>.
(db_strcpy, db_examine): Remove forward declarations.
(db_xcdump): Explicitly define untyped variables as `int'.
* ddb/db_examine.h: New file.
* ddb/db_expr.c: Include <ddb/db_expr.h>, <ddb/db_output.h>,
<ddb/db_sym.h> and <ddb/db_variables.h>.
* ddb/db_input.c: Include <ddb/db_command.h>.
* ddb/db_input.h: New file.
* ddb/db_lex.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_input.h> and <ddb/db_output.h>.
(db_skip_to_eol, db_lex): Explicitly define untyped variables as `int'.
* ddb/db_lex.h (db_lex): New declaration.
* ddb/db_macro.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_def_macro_cmd, db_exec_macro): Explicitly define untyped variables
as `int'.
* ddb/db_macro.h: New file.
* ddb/db_output.c: Include <ddb/db_command.h>.
* ddb/db_output.h (db_putchar): New declaration.
* ddb/db_print.c: Include <machine/db_interface.h>, <ddb/db_command.h>
and <ddb/db_output.h>.
(db_show_regs): Explicitly define untyped variables as `int'.
* ddb/db_run.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_output.h> and <ddb/db_watch.h>.
* ddb/db_run.h: Include <kern/task.h> and <machine/db_machdep.h>.
(db_single_step, db_single_step_cmd, db_in_single_step): New
declarations.
* ddb/db_sym.c: Include <ddb/db_command.h> and <ddb/db_output.h>.
(db_sym_parse_and_lookup): Explicitly define untyped variables as
`int'.
* ddb/db_sym.h (db_line_at_pc): New declaration.
* ddb/db_task_thread.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_lex.h> and <ddb/db_output.h>.
(db_lookup_task, db_lookup_task_thread, db_lookup_thread)
(db_lookup_task_id, db_lookup_thread_id): Explicitly define untyped
variables as `int'.
* ddb/db_trap.c: Include <ddb/db_examine.h> and <ddb/db_output.h>.
* ddb/db_trap.h: New file.
* ddb/db_variables.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_expr.h> and <ddb/db_output.h>.
(db_get_suffix, db_cmp_variable_name): Explicitly define untyped
variables as `int'.
* ddb/db_variables.h (db_get_variable): New declaration.
* ddb/db_watch.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_output.h> and <ddb/db_run.h>.
* ddb/db_write_cmd.c: Include <ddb/db_expr.h> and <ddb/db_output.h>.
* i386/i386/db_interface.c: Include <kern/printf.h>, <ddb/db_access.h>,
<ddb/db_command.h>, <ddb/db_output.h>, <ddb/db_run.h> and
<ddb/db_trap.h>.
(kdbprinttrap): Add `void' return type.
(db_user_to_kernel_address, db_task_name): Explicitly define untyped
variables as `int'.
* i386/i386/db_interface.h: New file.
* i386/i386/db_trace.c (db_i386_reg_value): Add `int' return type.
* i386/i386/trap.c [MACH_KDB]: Include <ddb/db_run.h> and
<ddb/db_watch.h>.
* ipc/ipc_kmsg.c [MACH_KDB]: Include <ddb/db_output.h>.
* kern/lock.c [MACH_KDB]: Include <ddb/db_output.h>.
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/db_interface.c | 12 | ||||
-rw-r--r-- | i386/i386/db_interface.h | 58 | ||||
-rw-r--r-- | i386/i386/db_machdep.h | 6 | ||||
-rw-r--r-- | i386/i386/db_trace.c | 1 | ||||
-rw-r--r-- | i386/i386/trap.c | 5 |
5 files changed, 75 insertions, 7 deletions
diff --git a/i386/i386/db_interface.c b/i386/i386/db_interface.c index f254776..cf1e1c4 100644 --- a/i386/i386/db_interface.c +++ b/i386/i386/db_interface.c @@ -45,9 +45,16 @@ #include "vm_param.h" #include <vm/vm_map.h> #include <kern/cpu_number.h> +#include <kern/printf.h> #include <kern/thread.h> #include <kern/task.h> +#include <ddb/db_access.h> +#include <ddb/db_command.h> +#include <ddb/db_output.h> +#include <ddb/db_run.h> #include <ddb/db_task_thread.h> +#include <ddb/db_trap.h> +#include <machine/db_interface.h> #include <machine/machspl.h> struct i386_saved_state *i386_last_saved_statep; @@ -59,6 +66,7 @@ extern thread_t db_default_thread; /* * Print trap reason. */ +void kdbprinttrap(type, code) int type, code; { @@ -258,7 +266,7 @@ int db_user_to_kernel_address( task_t task, vm_offset_t addr, - unsigned *kaddr, + unsigned int *kaddr, int flag) { register pt_entry_t *ptp; @@ -518,7 +526,7 @@ db_task_name( task_t task) { register char *p; - register n; + register int n; unsigned vaddr, kaddr; vaddr = DB_USER_STACK_ADDR; diff --git a/i386/i386/db_interface.h b/i386/i386/db_interface.h new file mode 100644 index 0000000..8cd1690 --- /dev/null +++ b/i386/i386/db_interface.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2007 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ + +#ifndef _I386_DB_INTERFACE_H_ +#define _I386_DB_INTERFACE_H_ + +#include <sys/types.h> +#include <kern/task.h> +#include <machine/thread.h> + +extern boolean_t kdb_trap ( + int type, + int code, + struct i386_saved_state *regs); + +extern void db_read_bytes ( + vm_offset_t addr, + int size, + char *data, + task_t task); + +extern void db_write_bytes ( + vm_offset_t addr, + int size, + char *data, + task_t task); + +extern boolean_t db_check_access ( + vm_offset_t addr, + int size, + task_t task); + +extern boolean_t db_phys_eq ( + task_t task1, + vm_offset_t addr1, + task_t task2, + vm_offset_t addr2); + +extern void db_task_name (task_t task); + +#endif /* _I386_DB_INTERFACE_H_ */ diff --git a/i386/i386/db_machdep.h b/i386/i386/db_machdep.h index ee5853a..cba259c 100644 --- a/i386/i386/db_machdep.h +++ b/i386/i386/db_machdep.h @@ -34,6 +34,7 @@ #include <mach/machine/vm_types.h> #include <mach/machine/vm_param.h> #include <mach/machine/eflags.h> +#include <machine/db_interface.h> #include <i386/thread.h> /* for thread_status */ #include <i386/trap.h> @@ -87,9 +88,6 @@ db_regs_t ddb_regs; /* register state */ ((!(user) && DB_VALID_KERN_ADDR(addr)) || \ ((user) && (addr) < VM_MIN_KERNEL_ADDRESS)) -boolean_t db_check_access(/* vm_offset_t, int, task_t */); -boolean_t db_phys_eq(/* task_t, vm_offset_t, task_t, vm_offset_t */); - /* macros for printing OS server dependent task name */ #define DB_TASK_NAME(task) db_task_name(task) @@ -97,8 +95,6 @@ boolean_t db_phys_eq(/* task_t, vm_offset_t, task_t, vm_offset_t */); #define DB_TASK_NAME_LEN 23 #define DB_NULL_TASK_NAME "? " -void db_task_name(/* task_t */); - /* macro for checking if a thread has used floating-point */ #define db_thread_fp_used(thread) ((thread)->pcb->ims.ifps != 0) diff --git a/i386/i386/db_trace.c b/i386/i386/db_trace.c index 4402161..d1c9512 100644 --- a/i386/i386/db_trace.c +++ b/i386/i386/db_trace.c @@ -124,6 +124,7 @@ db_lookup_i386_kreg( return 0; } +int db_i386_reg_value( struct db_variable *vp, db_expr_t *valuep, diff --git a/i386/i386/trap.c b/i386/i386/trap.c index bd0d8e0..2cb81e6 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -52,6 +52,11 @@ #include <i386/io_emulate.h> +#if MACH_KDB +#include <ddb/db_run.h> +#include <ddb/db_watch.h> +#endif + #include "debug.h" extern void exception(); |