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.2 |