src/corelib/ncbi_stack_win32.cpp File Reference

#include <ncbi_pch.hpp>
#include <corelib/ncbiapp.hpp>
#include <corelib/ncbidll.hpp>
#include <corelib/ncbi_safe_static.hpp>
#include <corelib/error_codes.hpp>
#include <windows.h>
#include <dbghelp.h>

Include dependency graph for ncbi_stack_win32.cpp:

Go to the source code of this file.

Classes

struct  SModuleEntry
struct  tagMODULEENTRY32
struct  _MODULEINFO
class  CSymbolGuard
class  CStackTraceImpl

Defines

#define NCBI_USE_ERRCODE_X   Corelib_Stack
#define lenof(a)   (sizeof(a) / sizeof((a)[0]))
#define MAXNAMELEN   1024
#define IMGSYMLEN   (sizeof IMAGEHLP_SYMBOL)
#define TTBUFLEN   65535
#define MAX_MODULE_NAME32   255
#define TH32CS_SNAPMODULE   0x00000008
#define GET_CURRENT_CONTEXT(c, contextFlags)

Typedefs

typedef vector< SModuleEntryTModules
typedef TModules::iterator ModuleListIter
typedef tagMODULEENTRY32 MODULEENTRY32
typedef MODULEENTRY32PMODULEENTRY32
typedef MODULEENTRY32LPMODULEENTRY32
typedef _MODULEINFO MODULEINFO
typedef _MODULEINFOLPMODULEINFO

Functions

static bool s_FillModuleListTH32 (TModules &modules, DWORD pid)
static bool s_FillModuleListPSAPI (TModules &mods, DWORD pid, HANDLE hProcess)
static bool s_FillModuleList (TModules &modules, DWORD pid, HANDLE hProcess)

Variables

static CSafeStaticPtr< CSymbolGuards_SymbolGuard


Define Documentation

#define GET_CURRENT_CONTEXT c,
contextFlags   ) 
 

Value:

do { \
        memset(&c, 0, sizeof(CONTEXT)); \
        c.ContextFlags = contextFlags; \
        __asm    call x \
        __asm x: pop eax \
        __asm    mov c.Eip, eax \
        __asm    mov c.Ebp, ebp \
        __asm    mov c.Esp, esp \
    } while(0)

Definition at line 437 of file ncbi_stack_win32.cpp.

#define IMGSYMLEN   (sizeof IMAGEHLP_SYMBOL)
 

Definition at line 51 of file ncbi_stack_win32.cpp.

#define lenof  )     (sizeof(a) / sizeof((a)[0]))
 

Definition at line 49 of file ncbi_stack_win32.cpp.

#define MAX_MODULE_NAME32   255
 

Definition at line 69 of file ncbi_stack_win32.cpp.

#define MAXNAMELEN   1024
 

Definition at line 50 of file ncbi_stack_win32.cpp.

#define NCBI_USE_ERRCODE_X   Corelib_Stack
 

Definition at line 43 of file ncbi_stack_win32.cpp.

#define TH32CS_SNAPMODULE   0x00000008
 

Definition at line 70 of file ncbi_stack_win32.cpp.

Referenced by s_FillModuleListTH32().

#define TTBUFLEN   65535
 

Definition at line 52 of file ncbi_stack_win32.cpp.


Typedef Documentation

typedef MODULEENTRY32* LPMODULEENTRY32
 

Definition at line 87 of file ncbi_stack_win32.cpp.

typedef struct _MODULEINFO * LPMODULEINFO
 

typedef struct tagMODULEENTRY32 MODULEENTRY32
 

typedef struct _MODULEINFO MODULEINFO
 

typedef TModules::iterator ModuleListIter
 

Definition at line 64 of file ncbi_stack_win32.cpp.

typedef MODULEENTRY32* PMODULEENTRY32
 

Definition at line 86 of file ncbi_stack_win32.cpp.

typedef vector<SModuleEntry> TModules
 

Definition at line 63 of file ncbi_stack_win32.cpp.


Function Documentation

static bool s_FillModuleList TModules modules,
DWORD  pid,
HANDLE  hProcess
[static]
 

Definition at line 293 of file ncbi_stack_win32.cpp.

References s_FillModuleListPSAPI(), and s_FillModuleListTH32().

Referenced by CSymbolGuard::UpdateSymbols().

static bool s_FillModuleListPSAPI TModules mods,
DWORD  pid,
HANDLE  hProcess
[static]
 

Definition at line 184 of file ncbi_stack_win32.cpp.

References SModuleEntry::baseAddress, BOOL, CDll::eAutoUnload, CDll::eLoadNow, CDll::GetEntryPoint_Func(), SModuleEntry::imageName, NStr::IntToString(), SModuleEntry::moduleName, NCBI_THROW, and SModuleEntry::size.

Referenced by s_FillModuleList().

static bool s_FillModuleListTH32 TModules modules,
DWORD  pid
[static]
 

Definition at line 91 of file ncbi_stack_win32.cpp.

References SModuleEntry::baseAddress, BOOL, tagMODULEENTRY32::dwSize, CDll::eAutoUnload, CDll::eLoadNow, ERR_POST_X, SModuleEntry::imageName, tagMODULEENTRY32::modBaseAddr, tagMODULEENTRY32::modBaseSize, SModuleEntry::moduleName, NCBI_THROW, auto_ptr< X >::reset(), SModuleEntry::size, tagMODULEENTRY32::szExePath, tagMODULEENTRY32::szModule, and TH32CS_SNAPMODULE.

Referenced by s_FillModuleList().


Variable Documentation

CSafeStaticPtr<CSymbolGuard> s_SymbolGuard [static]
 

Definition at line 418 of file ncbi_stack_win32.cpp.


Generated on Mon Dec 7 07:36:16 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Mon Dec 07 16:21:45 2009 by modify_doxy.py rev. 173732