Typedefs | |
typedef VOID *(* | LEVEL_PINCLIENT::TRACE_BUFFER_CALLBACK )(BUFFER_ID id, THREADID tid, const CONTEXT *ctxt, VOID *buf, UINT64 numElements, VOID *v) |
Functions | |
BUFFER_ID | LEVEL_PINCLIENT::PIN_DefineTraceBuffer (size_t recordSize, UINT32 numPages, TRACE_BUFFER_CALLBACK fun, VOID *val) |
VOID * | LEVEL_PINCLIENT::PIN_AllocateBuffer (BUFFER_ID id) |
VOID | LEVEL_PINCLIENT::PIN_DeallocateBuffer (BUFFER_ID id, VOID *buf) |
VOID * | LEVEL_PINCLIENT::PIN_GetBufferPointer (CONTEXT *const ctxt, BUFFER_ID id) |
|
A call-back function which Pin calls whenever the tools needs to consume a trace buffer (e.g., the trace buffer is full).
|
|
Explicitly allocate a trace buffer. This is only needed for tools which use a "double buffering" technique. When used, the buffer pointer should be returned from the TRACE_BUFFER_CALLBACK call-back.
|
|
Explicitly deallocate a trace buffer. This is only needed by tools using a "double buffering" technique, where it is used to deallocate buffers allocated via PIN_AllocateBuffer(). However, it may be safely called (with no effect) for a thread's implicit initial buffer.
|
|
Define a trace buffer to use with the Pin trace buffer API. This function defines the shape of the buffer, but doesn't allocate the buffer itself. Each thread implicitly creates its first buffer on start-up. Additional buffers may then be created using PIN_AllocateBuffer, but this is only needed by tools using "double buffering". Upon exit, the notification callback may be called on a different physical thread than the one that is exiting.
|
|
Returns the address of the current position in the buffer. Needs a CONTEXT that was passed in as a call back argument or IARG_CONTEXT
|