RETURN_ADDRESS(9)    NetBSD/i386 Kernel Developer's Manual   RETURN_ADDRESS(9)

NAME
     return_address -- return address from call stack

SYNOPSIS
     #include <i386/return.h>

     void *
     return_address(unsigned int level);

DESCRIPTION
     The 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 VALUES
     The return_address() function returns the requested return address, or
     NULL if it cannot dissect the call stack.

CODE REFERENCES
     sys/arch/i386/i386/copy.S, sys/arch/i386/include/return.h

REFERENCES
     config(5)

HISTORY
     The return_address() function first appeared in NetBSD 6.0.

AUTHORS
     David Young <dyoung@NetBSD.org>

NetBSD 8.0                        May 5, 2010                       NetBSD 8.0

You can also request any man page by name and (optionally) by section:

Command: 
Section: 
Architecture: 
Collection: 
 

Use the DEFAULT collection to view manual pages for third-party software.


©1994 Man-cgi 1.15, Panagiotis Christias
©1996-2017 Modified for NetBSD by Kimmo Suominen