| Top |
| GstTrace * | gst_trace_new () |
| void | gst_trace_destroy () |
| void | gst_trace_flush () |
| void | gst_trace_text_flush () |
| #define | gst_trace_add_entry() |
| #define | gst_trace_get_size() |
| #define | gst_trace_get_offset() |
| #define | gst_trace_get_remaining() |
| void | gst_trace_set_default () |
| void | gst_trace_read_tsc () |
| gboolean | gst_alloc_trace_available () |
| const GList * | gst_alloc_trace_list () |
| int | gst_alloc_trace_live_all () |
| void | gst_alloc_trace_print_all () |
| void | gst_alloc_trace_set_flags_all () |
| GstAllocTrace * | gst_alloc_trace_get () |
| void | gst_alloc_trace_print () |
| void | gst_alloc_trace_print_live () |
| void | gst_alloc_trace_set_flags () |
| #define | gst_alloc_trace_register() |
| #define | gst_alloc_trace_new() |
| #define | gst_alloc_trace_free() |
Traces allows to track object allocation. They provide a instance counter per GType. The counter is incremented for each object allocated and decremented it when it's freed.
Example 18. Tracing object instances
// trace un-freed object instances
gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
if (!gst_alloc_trace_available ()) {
g_warning ("Trace not available (recompile with trace enabled).");
}
gst_alloc_trace_print_live ();
// do something here
gst_alloc_trace_print_live ();
Last reviewed on 2005-11-21 (0.9.5)
GstTrace * gst_trace_new (const gchar *filename,gint size);
Create a ringbuffer of size
in the file with filename
to
store trace results in.
Free-function: gst_trace_destroy
void
gst_trace_destroy (GstTrace *trace);
Flush an close the previously allocated trace
.
void
gst_trace_flush (GstTrace *trace);
Flush any pending trace entries in trace
to the trace file.
trace
can be NULL in which case the default GstTrace will be
flushed.
void
gst_trace_text_flush (GstTrace *trace);
Flush any pending trace entries in trace
to the trace file,
formatted as a text line with timestamp and sequence numbers.
trace
can be NULL in which case the default GstTrace will be
flushed.
#define gst_trace_add_entry(trace,seq,data,msg)
Add an entry to trace
with sequence number seq
, data
and msg
.
If trace
is NULL, the entry will be added to the default GstTrace.
#define gst_trace_get_size(trace) ((trace)->bufsize)
Retrieve the buffer size of trace
.
#define gst_trace_get_offset(trace) ((trace)->bufoffset)
Retrieve the current buffer offset of trace
.
#define gst_trace_get_remaining(trace) ((trace)->bufsize - (trace)->bufoffset)
Retrieve the remaining size in the trace
buffer.
void
gst_trace_set_default (GstTrace *trace);
Set the default GstTrace to trace
.
void
gst_trace_read_tsc (gint64 *dst);
Read a platform independent timer value that can be used in benchmarks.
gboolean
gst_alloc_trace_available (void);
Check if alloc tracing was compiled into the core
const GList *
gst_alloc_trace_list (void);
Get a list of all registered alloc trace objects.
int
gst_alloc_trace_live_all (void);
Get the total number of live registered alloc trace objects.
void
gst_alloc_trace_print_all (void);
Print the status of all registered alloc trace objects.
void
gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags);
Enable the specified options on all registered alloc trace objects.
GstAllocTrace *
gst_alloc_trace_get (const gchar *name);
Get the named alloc trace object.
void
gst_alloc_trace_print (const GstAllocTrace *trace);
Print the status of the given GstAllocTrace.
void
gst_alloc_trace_print_live (void);
Print the status of all registered alloc trace objects, ignoring those without live objects.
void gst_alloc_trace_set_flags (GstAllocTrace *trace,GstAllocTraceFlags flags);
Enable the given features on the given GstAllocTrace object.
#define gst_alloc_trace_register(name) _gst_alloc_trace_register (name);
Register a new alloc tracer with the given name
#define gst_alloc_trace_new(trace, mem)
Use the tracer to trace a new memory allocation