summaryrefslogtreecommitdiff
path: root/ddb/db_sym.h
diff options
context:
space:
mode:
Diffstat (limited to 'ddb/db_sym.h')
-rw-r--r--ddb/db_sym.h42
1 files changed, 36 insertions, 6 deletions
diff --git a/ddb/db_sym.h b/ddb/db_sym.h
index e40264ab..d8f33874 100644
--- a/ddb/db_sym.h
+++ b/ddb/db_sym.h
@@ -46,6 +46,7 @@ typedef struct {
#define SYMTAB_AOUT 0
#define SYMTAB_COFF 1
#define SYMTAB_MACHDEP 2
+#define SYMTAB_ELF 3
char *start; /* symtab location */
char *end;
char *private; /* optional machdep pointer */
@@ -161,10 +162,10 @@ extern void db_symbol_values( db_symtab_t *stab,
db_search_task_symbol(val,strgy,offp,0)
/* strcmp, modulo leading char */
-extern boolean_t db_eqname( char* src, char* dst, char c );
+extern boolean_t db_eqname( const char* src, const char* dst, char c );
/* print closest symbol to a value */
-extern void db_task_printsym( db_expr_t off,
+extern void db_task_printsym( db_addr_t off,
db_strategy_t strategy,
task_t task);
@@ -205,7 +206,7 @@ extern struct db_sym_switch {
db_sym_t sym,
char **file,
int *line,
- db_expr_t pc
+ db_addr_t pc
);
void (*symbol_values)(
@@ -235,6 +236,35 @@ extern boolean_t db_line_at_pc(
db_sym_t sym,
char **filename,
int *linenum,
- db_expr_t pc);
-
-#endif
+ db_addr_t pc);
+
+extern boolean_t aout_db_sym_init(
+ char *symtab,
+ char *esymtab,
+ char *name,
+ char *task_addr);
+
+extern boolean_t elf_db_sym_init (
+ unsigned shdr_num,
+ vm_size_t shdr_size,
+ vm_offset_t shdr_addr,
+ unsigned shdr_shndx,
+ char *name,
+ char *task_addr);
+
+db_sym_t db_lookup(char *);
+
+db_sym_t
+db_search_in_task_symbol(
+ db_addr_t val,
+ db_strategy_t strategy,
+ db_addr_t *offp,
+ task_t task);
+
+extern db_sym_t
+db_sym_parse_and_lookup(
+ db_sym_t (*func)(),
+ db_symtab_t *symtab,
+ char *symstr);
+
+#endif /* _DDB_DB_SYM_H_ */