Exemple #1
0
/*
 * 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;
}
Exemple #2
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);
}