diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-09-14 13:35:50 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-09-17 11:39:55 +0200 |
commit | 86f60379f71ec6d0aa3b93eaacc55bc5f453bda5 (patch) | |
tree | 395ccb92281d5d198892ba478ffe5dbb0af23f42 /ddb/db_elf.h | |
parent | ffd4f3c8239b41d3fe9fa14403eb063e02b6a222 (diff) | |
download | gnumach-86f60379f71ec6d0aa3b93eaacc55bc5f453bda5.tar.gz gnumach-86f60379f71ec6d0aa3b93eaacc55bc5f453bda5.tar.bz2 gnumach-86f60379f71ec6d0aa3b93eaacc55bc5f453bda5.zip |
ddb: add support for ELF symbol tables
* ddb/db_elf.c: New file.
* ddb/db_elf.h: Likewise.
* Makefrag.am (libkernel_a_SOURCES): Add db_elf.{c,h}.
* ddb/db_sym.c (dummy_db_sym_init): New stub db_sym_init function.
(db_sym_switch): Add ELF functions.
* ddb/db_sym.h (SYMTAB_ELF): New macro.
(elf_db_sym_init): New declaration.
* i386/i386at/model_dep.c (c_boot_entry): Get ELF section header
information from the multiboot structure, and call elf_db_sym_init.
Diffstat (limited to 'ddb/db_elf.h')
-rw-r--r-- | ddb/db_elf.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ddb/db_elf.h b/ddb/db_elf.h new file mode 100644 index 00000000..12b82868 --- /dev/null +++ b/ddb/db_elf.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2013 Free Software Foundation. + * + * 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 + * (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, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _DDB_DB_ELF_H_ +#define _DDB_DB_ELF_H_ + +#include <ddb/db_sym.h> +#include <machine/db_machdep.h> + +extern boolean_t +elf_db_line_at_pc( + db_symtab_t *stab, + db_sym_t sym, + char **file, + int *line, + db_addr_t pc); + +extern db_sym_t +elf_db_lookup( + db_symtab_t *stab, + char * symstr); + +extern db_sym_t +elf_db_search_symbol( + db_symtab_t * symtab, + db_addr_t off, + db_strategy_t strategy, + db_expr_t *diffp); + +extern void +elf_db_symbol_values( + db_symtab_t *stab, + db_sym_t sym, + char **namep, + db_expr_t *valuep); + +#endif /* _DDB_DB_ELF_H_ */ |