|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
#include <debug/syms.h> char *syms_val2name (unsigned long addr, unsigned long *offset);
This function takes an address addr and returns the name of the
closest symbol whose address is less that addr. If offset
is not a
NULL pointer, the offset of addr from the symbol's
address is stored in the variable pointed to by offset.
You must call
syms_init (see section syms_init) before calling any of
syms_* functions for the first time.
This function is meant to be used to convert numerical addresses into
function names and offsets into their code, like what
with the call frame traceback.
The function ignores several dummy symbols, like `_end' and `_etext'.
The name of the found symbol, or the printed hexadecimal representation
of addr, if no symbol was found near addr. The return value
is a pointer to a static buffer, so don't overwrite it and don't pass it
unsigned long offs; char *symbol_name; syms_init ("foo.exe"); symbol_name = syms_val2name (0x1c12, &offs); printf ("The address %x is at %s%+ld\n", 0x1c12, symbol_name, offs);
|webmaster donations bookstore||delorie software privacy|
|Copyright © 2004 by DJ Delorie||Updated Apr 2004|