leaks
This tracing module tracks the lifetimes of GstObject and GstMiniObject
objects and prints a list of leaks to the debug log under GST_TRACER:7
when
gst_deinit is called, and also prints a g_warning.
Starting with GStreamer 1.18, you can also use action signals on the tracer object to fetch leak information. Use gst_tracing_get_active_tracers to get a list of all active tracers and find the right one by name.
You can activate this tracer in the usual way by adding the string 'leaks'
to the environment variable GST_TRACERS
. Such as: GST_TRACERS=leaks
Note that the values are separated by semicolon (;
), such as:
GST_TRACERS=leaks;latency
, and multiple instances of the same tracer can be
active at the same time.
Parameters can also be passed to each tracer. The leaks tracer currently accepts five params:
- filters: (string) to filter which objects to record
- check-refs: (boolean) whether to record every location where a leaked object was reffed and unreffed
- stack-traces-flags: (string) full or none; see: GstStackTraceFlags
- name: (string) set a name for the tracer object itself
- log-leaks-on-deinit: (boolean) whether to report all leaks on gst_deinit by printing them in the debug log; "true" by default
Examples:
GST_TRACERS='leaks(filters="GstEvent,GstMessage",stack-traces-flags=none)'
GST_TRACERS='leaks(filters="GstBuffer",stack-traces-flags=full,check-refs=true);leaks(name=all-leaks)'
The results of the search are