/* * Parameters: * diffp: in/out */ c_db_sym_t X_db_search_symbol(db_symtab_t *symtab, db_addr_t off, db_strategy_t strategy, db_expr_t *diffp) { c_linker_sym_t sym; long diff; if (linker_ddb_search_symbol((caddr_t) off, &sym, &diff) == 0) { *diffp = (db_expr_t) diff; return (c_db_sym_t) sym; } return 0; }
static int stack_symbol_ddb(vm_offset_t pc, const char **name, long *offset) { linker_symval_t symval; c_linker_sym_t sym; if (linker_ddb_search_symbol((caddr_t)pc, &sym, offset) != 0) goto out; if (linker_ddb_symbol_values(sym, &symval) != 0) goto out; if (symval.name != NULL) { *name = symval.name; return (0); } out: *offset = 0; *name = "??"; return (ENOENT); }