IgHookTrace Class Reference
#include <IgHook_IgHookTrace.h>
List of all members.
Classes |
| struct | Counter |
| | Nearly dummy object type to identify a counter. More...
|
| class | CounterValue |
| | Value for a counter chained from a trace. More...
|
Public Member Functions |
| void * | operator new (size_t n, IgHookTraceAlloc *alloc=0) |
| | IgHookTrace (IgHookTrace *parent=0, void *address=0) |
| IgHookTrace * | parent (void) |
| IgHookTrace * | next (void) |
| void * | address (void) |
| bool | symbol (const char *&sym, const char *&lib, int &offset, int &liboffset) |
| IgHookTrace * | children (void) |
| IgHookTrace * | child (void *address) |
| CounterValue * | counters (void) |
| CounterValue * | counter (Counter *id) |
| void | merge (IgHookTrace *other) |
Static Public Member Functions |
| static int | stacktrace (void **addresses, int nmax) |
| static void * | tosymbol (void *address) |
| static bool | symbol (void *address, const char *&sym, const char *&lib, int &offset, int &liboffset) |
Private Attributes |
| IgHookTraceAlloc * | m_alloc |
| IgHookTrace * | m_parent |
| IgHookTrace * | m_next |
| IgHookTrace * | m_children |
| void * | m_address |
| CounterValue * | m_counters |
Detailed Description
Definition at line 27 of file IgHook_IgHookTrace.h.
Constructor & Destructor Documentation
| IgHookTrace::IgHookTrace |
( |
IgHookTrace * |
parent = 0, |
|
|
void * |
address = 0 | |
|
) |
| | |
Member Function Documentation
| void * IgHookTrace::address |
( |
void |
|
) |
|
| static int IgHookTrace::stacktrace |
( |
void ** |
addresses, |
|
|
int |
nmax | |
|
) |
| | [static] |
| bool IgHookTrace::symbol |
( |
const char *& |
sym, |
|
|
const char *& |
lib, |
|
|
int & |
offset, |
|
|
int & |
liboffset | |
|
) |
| | |
| bool IgHookTrace::symbol |
( |
void * |
address, |
|
|
const char *& |
sym, |
|
|
const char *& |
lib, |
|
|
int & |
offset, |
|
|
int & |
liboffset | |
|
) |
| | [static] |
Definition at line 227 of file IgHook_IgHookTrace.cpp.
00232 {
00233 sym = lib = 0;
00234 offset = 0;
00235 liboffset = (unsigned long) address;
00236
00237 Dl_info info;
00238 if (dladdr (address, &info))
00239 {
00240 if (info.dli_fname && info.dli_fname [0])
00241 lib = info.dli_fname;
00242
00243 if (info.dli_fbase)
00244 liboffset = (unsigned long) address - (unsigned long) info.dli_fbase;
00245
00246 if (info.dli_saddr)
00247 offset = (unsigned long) address - (unsigned long) info.dli_saddr;
00248
00249 if (info.dli_sname && info.dli_sname [0])
00250 sym = info.dli_sname;
00251
00252 return true;
00253 }
00254
00255 return false;
00256 }
| void * IgHookTrace::tosymbol |
( |
void * |
address |
) |
[static] |
Definition at line 263 of file IgHook_IgHookTrace.cpp.
00264 {
00265 Dl_info info;
00266 return (dladdr (address, &info)
00267 && info.dli_fname
00268 && info.dli_fname [0]
00269 && info.dli_saddr)
00270 ? info.dli_saddr : address;
00271 }
Member Data Documentation
The documentation for this class was generated from the following files: