pt_blk_alloc_decoder - Man Page

allocate/free an Intel(R) Processor Trace block decoder

Synopsis

#include <intel-pt.h>

struct pt_block_decoder *

pt_blk_alloc_decoder(const struct pt_config *config);

void pt_blk_free_decoder(struct pt_block_decoder *decoder);

Link with -lipt.

Description

A block decoder decodes raw Intel Processor Trace (Intel PT) into a sequence of blocks of instructions described by the pt_block structure. See pt_blk_next(3).

pt_blk_alloc_decoder() allocates a new block decoder and returns a pointer to it. The config argument points to a pt_config object. See pt_config(3). The config argument will not be referenced by the returned decoder but the trace buffer defined by the config argument’s begin and end fields will.

The returned block decoder needs to be synchronized onto the trace stream before it can be used. To synchronize the decoder, use pt_blk_sync_forward(3), pt_blk_sync_backward(3), or pt_blk_sync_set(3).

pt_blk_free_decoder() frees the Intel PT block decoder pointed to by decoder. The decoder argument must be NULL or point to a decoder that has been allocated by a call to pt_blk_alloc_decoder().

Return Value

pt_blk_alloc_decoder() returns a pointer to a pt_block_decoder object on success or NULL in case of an error.

Example

    struct pt_block_decoder *decoder;
    int errcode;

    decoder = pt_blk_alloc_decoder(config);
    if (!decoder)
        return pte_nomem;

    errcode = decode(decoder);

    pt_blk_free_decoder(decoder);
    return errcode;

See Also

pt_config(3), pt_blk_sync_forward(3), pt_blk_sync_backward(3), pt_blk_sync_set(3), pt_blk_get_offset(3), pt_blk_get_sync_offset(3), pt_blk_get_image(3), pt_blk_set_image(3), pt_blk_get_config(3), pt_blk_time(3), pt_blk_core_bus_ratio(3), pt_blk_next(3)

Referenced By

pt_blk_get_offset(3), pt_blk_next(3), pt_blk_sync_forward(3), pt_insn_get_image(3), pt_qry_time(3).

The man page pt_blk_free_decoder(3) is an alias of pt_blk_alloc_decoder(3).