X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fgdbcore.h;h=4b36d6968aa535b0b2fedd803d348ebf3f918726;hb=37cc8bfee6166ea05f1fa2e7d9f0f4d90663b7fc;hp=926050d68dbb1d068c35198ea2d190bf0f487bb8;hpb=d4b2399a9c2702d7b6ed31df1187fd7eef4e0ffb;p=binutils-gdb.git diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h index 926050d68db..4b36d6968aa 100644 --- a/gdb/gdbcore.h +++ b/gdb/gdbcore.h @@ -1,11 +1,14 @@ /* Machine independent variables that describe the core file under GDB. - Copyright 1986, 1987, 1989, 1990, 1992, 1995 Free Software Foundation, Inc. + + Copyright (C) 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2004, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. This file is part of GDB. 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 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -14,115 +17,114 @@ 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, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + along with this program. If not, see . */ /* Interface routines for core, executable, etc. */ #if !defined (GDBCORE_H) #define GDBCORE_H 1 +struct type; +struct regcache; + #include "bfd.h" +#include "exec.h" /* Return the name of the executable file as a string. ERR nonzero means get error if there is none specified; otherwise return 0 in that case. */ -extern char *get_exec_file PARAMS ((int err)); +extern char *get_exec_file (int err); /* Nonzero if there is a core file. */ -extern int have_core_file_p PARAMS ((void)); - -/* Read "memory data" from whatever target or inferior we have. - Returns zero if successful, errno value if not. EIO is used for - address out of bounds. If breakpoints are inserted, returns shadow - contents, not the breakpoints themselves. From breakpoint.c. */ - -extern int read_memory_nobpt PARAMS ((CORE_ADDR memaddr, char *myaddr, - unsigned len)); +extern int have_core_file_p (void); /* Report a memory error with error(). */ -extern void memory_error PARAMS ((int status, CORE_ADDR memaddr)); +extern void memory_error (int status, CORE_ADDR memaddr); /* Like target_read_memory, but report an error if can't read. */ -extern void read_memory PARAMS ((CORE_ADDR memaddr, char *myaddr, int len)); +extern void read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len); + +/* Like target_read_stack, but report an error if can't read. */ + +extern void read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, int len); /* Read an integer from debugged memory, given address and number of bytes. */ -extern LONGEST read_memory_integer PARAMS ((CORE_ADDR memaddr, int len)); +extern LONGEST read_memory_integer (CORE_ADDR memaddr, + int len, enum bfd_endian byte_order); +extern int safe_read_memory_integer (CORE_ADDR memaddr, int len, + enum bfd_endian byte_order, LONGEST *return_value); /* Read an unsigned integer from debugged memory, given address and number of bytes. */ -extern ULONGEST read_memory_unsigned_integer PARAMS ((CORE_ADDR memaddr, int len)); +extern ULONGEST read_memory_unsigned_integer (CORE_ADDR memaddr, + int len, enum bfd_endian byte_order); /* Read a null-terminated string from the debuggee's memory, given address, * a buffer into which to place the string, and the maximum available space */ -extern void read_memory_string PARAMS ((CORE_ADDR, char *, int)); + +extern void read_memory_string (CORE_ADDR, char *, int); + +/* Read the pointer of type TYPE at ADDR, and return the address it + represents. */ + +CORE_ADDR read_memory_typed_address (CORE_ADDR addr, struct type *type); /* This takes a char *, not void *. This is probably right, because passing in an int * or whatever is wrong with respect to byteswapping, alignment, different sizes for host vs. target types, etc. */ -extern void write_memory PARAMS ((CORE_ADDR memaddr, char *myaddr, int len)); +extern void write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, int len); + +/* Store VALUE at ADDR in the inferior as a LEN-byte unsigned integer. */ +extern void write_memory_unsigned_integer (CORE_ADDR addr, int len, + enum bfd_endian byte_order, + ULONGEST value); -extern void generic_search PARAMS ((int len, char *data, char *mask, - CORE_ADDR startaddr, int increment, - CORE_ADDR lorange, CORE_ADDR hirange, - CORE_ADDR * addr_found, char *data_found)); +/* Store VALUE at ADDR in the inferior as a LEN-byte unsigned integer. */ +extern void write_memory_signed_integer (CORE_ADDR addr, int len, + enum bfd_endian byte_order, + LONGEST value); /* Hook for `exec_file_command' command to call. */ -extern void (*exec_file_display_hook) PARAMS ((char *filename)); +extern void (*deprecated_exec_file_display_hook) (char *filename); /* Hook for "file_command", which is more useful than above - (because it is invoked AFTER symbols are read, not before) */ + (because it is invoked AFTER symbols are read, not before). */ -extern void (*file_changed_hook) PARAMS ((char *filename)); +extern void (*deprecated_file_changed_hook) (char *filename); -extern void specify_exec_file_hook PARAMS ((void (*hook) (char *filename))); +extern void specify_exec_file_hook (void (*hook) (char *filename)); -/* Binary File Diddlers for the exec and core files */ +/* Binary File Diddler for the core file. */ extern bfd *core_bfd; -extern bfd *exec_bfd; /* Whether to open exec and core files read-only or read-write. */ extern int write_files; -extern void core_file_command PARAMS ((char *filename, int from_tty)); - -extern void exec_file_attach PARAMS ((char *filename, int from_tty)); - -extern void exec_file_command PARAMS ((char *filename, int from_tty)); +extern void core_file_command (char *filename, int from_tty); -extern void validate_files PARAMS ((void)); +extern void exec_file_attach (char *filename, int from_tty); -extern CORE_ADDR register_addr PARAMS ((int regno, CORE_ADDR blockend)); +extern void exec_file_clear (int from_tty); -extern void registers_fetched PARAMS ((void)); - -#if !defined (KERNEL_U_ADDR) -extern CORE_ADDR kernel_u_addr; -#define KERNEL_U_ADDR kernel_u_addr -#endif - -/* The target vector for core files. */ - -extern struct target_ops core_ops; +extern void validate_files (void); /* The current default bfd target. */ extern char *gnutarget; -extern void set_gnutarget PARAMS ((char *)); +extern void set_gnutarget (char *); /* Structure to keep track of core register reading functions for various core file types. */ @@ -144,16 +146,16 @@ struct core_fns another file). Returns nonzero if the handler recognizes the format, zero otherwise. */ - int (*check_format) PARAMS ((bfd *)); + int (*check_format) (bfd *); /* Core file handler function to call to ask if it can handle a given core file format or not. Returns zero if it can't, nonzero otherwise. */ - int (*core_sniffer) PARAMS ((struct core_fns *, bfd *)); + int (*core_sniffer) (struct core_fns *, bfd *); - /* Extract the register values out of the core file and store them where - `read_register' will find them. + /* Extract the register values out of the core file and supply them + into REGCACHE. CORE_REG_SECT points to the register values themselves, read into memory. @@ -173,20 +175,26 @@ struct core_fns registers in a large upage-plus-stack ".reg" section. Original upage address X is at location core_reg_sect+x+reg_addr. */ - void (*core_read_registers) PARAMS ((char *core_reg_sect, - unsigned core_reg_size, - int which, CORE_ADDR reg_addr)); + void (*core_read_registers) (struct regcache *regcache, + char *core_reg_sect, + unsigned core_reg_size, + int which, CORE_ADDR reg_addr); - /* Finds the next struct core_fns. They are allocated and initialized - in whatever module implements the functions pointed to; an - initializer calls add_core_fns to add them to the global chain. */ + /* Finds the next struct core_fns. They are allocated and + initialized in whatever module implements the functions pointed + to; an initializer calls deprecated_add_core_fns to add them to + the global chain. */ struct core_fns *next; }; -extern void add_core_fns PARAMS ((struct core_fns * cf)); -extern int default_core_sniffer PARAMS ((struct core_fns *cf, bfd *abfd)); -extern int default_check_format PARAMS ((bfd *abfd)); +/* NOTE: cagney/2004-04-05: Replaced by "regset.h" and + regset_from_core_section(). */ +extern void deprecated_add_core_fns (struct core_fns *cf); +extern int default_core_sniffer (struct core_fns *cf, bfd * abfd); +extern int default_check_format (bfd * abfd); + +struct target_section *deprecated_core_resize_section_table (int num_added); #endif /* !defined (GDBCORE_H) */