#include "ace/Stack_Trace.h"
#include "ace/Min_Max.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
#include <windows.h>
#include <Dbghelp.h>
Classes | |
struct | _dbghelp_functions |
struct | frame_state |
Defines | |
#define | MAXTEXT 5000 |
#define | SYMSIZE 100 |
#define | LINK(TYPE, NAME) |
#define | LINK_T(NAME) LINK (dbghelp_functions::NAME##_t, NAME) |
Typedefs | |
typedef struct _dbghelp_functions | dbghelp_functions |
Functions | |
static size_t | determine_starting_frame (ssize_t initial_frame, ssize_t offset) |
static bool | load_dbghelp_library_if_needed (dbghelp_functions *pDbg) |
static int | add_frame_to_buf (struct frame_state const *fs, void *usrarg) |
static void | emptyStack () |
static int | cs_operate (int(*func)(struct frame_state const *, void *), void *usrarg, size_t starting_frame, size_t num_frames) |
Portions of the platform-specific code have been based on code found in various places on the internet e.g., google groups, VxWorks FAQ, etc., and adapted for use here.
#define LINK | ( | TYPE, | |||
NAME | ) |
Value:
(pDbg->NAME = \ (TYPE) GetProcAddress (pDbg->hMod, #NAME))
#define LINK_T | ( | NAME | ) | LINK (dbghelp_functions::NAME##_t, NAME) |
#define MAXTEXT 5000 |
#define SYMSIZE 100 |
typedef struct _dbghelp_functions dbghelp_functions |
static int add_frame_to_buf | ( | struct frame_state const * | fs, | |
void * | usrarg | |||
) | [static] |
static int cs_operate | ( | int(*)(struct frame_state const *, void *) | func, | |
void * | usrarg, | |||
size_t | starting_frame, | |||
size_t | num_frames | |||
) | [static] |
static void emptyStack | ( | ) | [static] |
static bool load_dbghelp_library_if_needed | ( | dbghelp_functions * | pDbg | ) | [static] |