| RETURN_ADDRESS(9) | Kernel Developer's Manual (i386) | RETURN_ADDRESS(9) | 
return_address —
#include <i386/return.h>
void *
  
  return_address(unsigned
    int level);
return_address() function evaluates to the first
  return address on the call stack if level equals 0, or
  else to the return address for the stack frame level
  frames down.
This function is intended to be called by diagnostic code to record the call stack.
A special fault handler stops
    return_address() from crashing the kernel by
    examining a non-existent or corrupt stack frame.
Kernel compilation options affect both the ability of
    return_address() to locate return addresses on the
    stack, and the programmer's ability to interpret the addresses. The compiler
    may optimize away the stack frame pointers that
    return_address() depends on.
To use return_address() effecively, try a
    kernel configuration option such as
makeoptions DEBUG="-g -fno-omit-frame-pointer \ -fno-optimize-sibling-calls -O0"
return_address() function returns the requested
  return address, or NULL if it cannot dissect the call
  stack.
return_address() function first appeared in
  NetBSD 6.0.
| May 5, 2010 | NetBSD 9.4 |