From 86f60379f71ec6d0aa3b93eaacc55bc5f453bda5 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sun, 14 Sep 2014 13:35:50 +0200 Subject: 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. --- ddb/db_sym.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'ddb/db_sym.c') diff --git a/ddb/db_sym.c b/ddb/db_sym.c index 7d97d15e..0179137f 100644 --- a/ddb/db_sym.c +++ b/ddb/db_sym.c @@ -38,6 +38,7 @@ #include #include #include +#include #include /* vm_map_t */ @@ -507,6 +508,10 @@ void db_free_symbol(db_sym_t s) */ void dummy_db_free_symbol(db_sym_t symbol) { } +boolean_t dummy_db_sym_init(char *a, char *b, char *c, char *d) { + return FALSE; +} + struct db_sym_switch x_db[] = { @@ -521,7 +526,14 @@ struct db_sym_switch x_db[] = { { 0,}, /* Machdep, not inited here */ - { 0,} + { 0,}, + +#ifdef DB_NO_ELF + { 0,}, +#else /* DB_NO_ELF */ + { dummy_db_sym_init, elf_db_lookup, elf_db_search_symbol, + elf_db_line_at_pc, elf_db_symbol_values, dummy_db_free_symbol }, +#endif /* DB_NO_ELF */ }; -- cgit v1.2.3