#include <bsls_stackaddressutil.h>
This struct provides a namespace for the function to obtain return addresses from the stack.
◆ anonymous enum
| Enumerator |
|---|
| k_IGNORE_FRAMES | |
◆ formatCheapStack()
| static void bsls::StackAddressUtil::formatCheapStack |
( |
char * |
output, |
|
|
int |
length, |
|
|
const char * |
taskname = 0 |
|
) |
| |
|
static |
Load the specified output buffer having the specified length with the Bloomberg standard "cheapstack" contents as a null-terminated string. On successfully obtaining the current call stack, this will be instructions on how to run the Bloomberg tool showfunc.tsk (with the optionally specified taskname, otherwise with an attempt to obtain the system-specific process name) to get details of the current call stack where formatCheapStack was called. On failure, text indicating that the call stack was not obtainable will be written to output. If length is not long enough for the entire output it will be truncated. The behavior is undefined unless 0 <= length and output has the capacity for at least length bytes.
◆ getStackAddresses()
| static int bsls::StackAddressUtil::getStackAddresses |
( |
void ** |
buffer, |
|
|
int |
maxFrames |
|
) |
| |
|
static |
Get an sequence of return addresses from the current thread's function call stack, ordered from most recent call to least recent, and load them into the specified array *buffer, which is at least the specified maxFrames in length. A return address is an address stored on the stack that points to the first instruction that will be executed after the called subroutine returns. If there are more than maxFrames frames on the stack, only the return addresses for the maxFrames most recent routine calls are stored. When this routine completes, buffer will contain an ordered sequence of return addresses, sorted such that recent calls occur in the array before calls that took place before them. Return the number of stack frames stored into buffer on success, and a negative value otherwise. The behavior is undefined unless maxFrames >= 0 and buffer has room for at least maxFrames addresses. Note that this routine may fill buffer with garbage if the stack is corrupt, or on Windows if some stack frames represent optimized routines.
The documentation for this struct was generated from the following file: