Thibault Saunier
85179a674f
tracers: leaks: Use the new gst_debug_get_stack_trace
...
And remove the local implementation of it.
https://bugzilla.gnome.org/show_bug.cgi?id=772555
2016-11-04 14:22:05 -03:00
Thibault Saunier
a8d4857555
gst: Use libunwind/libdw to generate backtraces if avalaible
...
Making the gst_debug_print_trace function more generally useful.
API:
+ gst_debug_get_trace
https://bugzilla.gnome.org/show_bug.cgi?id=772555
2016-11-04 14:22:05 -03:00
Thibault Saunier
2c6dd70217
stats: Fix warning
2016-10-14 17:30:01 +02:00
Vincent Penquerc'h
18d5d118ab
tracers: fix structure leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=772851
2016-10-13 13:06:40 +01:00
Stefan Sauer
ede686c39b
tracer/rusage: fix format string args
...
The format string contains a process id, but we did not provice one. This
caused us to log garbage since all args got shifted.
2016-10-08 13:22:23 +02:00
Tim-Philipp Müller
9791669ac3
meson: tracers: signal availability of libunwind and backtrace() to code
...
Not setting cdata here on purpose because of .. complications.
2016-09-27 18:24:02 +01:00
Thibault Saunier
c4aed66eff
meson: Build tracers
2016-09-26 18:27:00 -03:00
Guillaume Desmottes
714ea37282
tracers: leaks: update type filter later for unknown types
...
This allow us to filter using an object type which is implemented
by a plugin like, say, GstGtkGLSink.
https://bugzilla.gnome.org/show_bug.cgi?id=768989
2016-07-20 14:14:48 +01:00
Guillaume Desmottes
59885c2a92
leaks: check return values of libunwind calls
2016-07-11 12:44:19 +01:00
Guillaume Desmottes
9ba53ff1fc
leaks: warn if object is destroyed while the tracer is disposing
...
This should not happen and generally means some thread is still running.
https://bugzilla.gnome.org/show_bug.cgi?id=768578
2016-07-08 17:35:30 +01:00
Guillaume Desmottes
1ed4140d00
leaks tracer: use G_OS_UNIX to check for signal support
...
Checking for signal.h is not good enough as it's present in Windows.
Those signals are UNIX specific anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 12:38:46 +03:00
Guillaume Desmottes
17c37efa83
leaks tracer: add creation stack trace support
...
This allow us to provide the trace of leaked objects making it easier
to debug.
https://bugzilla.gnome.org/show_bug.cgi?id=767862
2016-07-08 12:07:53 +03:00
Guillaume Desmottes
3bb5c1e73a
leaks tracer: add checkpoint support using SIGUSR2
...
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:43 +03:00
Guillaume Desmottes
53d2e8c977
leaks tracer: log alive objects when receiving SIGUSR1
...
We don't want to automatically catch signals so use an env variable to
enable this feature.
https://bugzilla.gnome.org/show_bug.cgi?id=767857
2016-07-08 11:23:38 +03:00
Tim-Philipp Müller
6446a1a45c
tracers: leaks: some micro-optimisations
...
- we know number of filter items is not going to change,
but compiler doesn't
- only do GST_IS_TRACER check for GObjects, not mini objects
- use non-type check cast macros in performance critical paths
2016-06-03 14:03:25 +01:00
Guillaume Desmottes
0bb7fa9855
tracers: add leaks tracer
...
https://bugzilla.gnome.org/show_bug.cgi?id=765052
2016-06-03 00:36:46 +01:00
Guillaume Desmottes
e0757e1d80
rusage: properly free the queue memory
...
The queue is allocated as part of the tracer struct so we should not
use g_queue_free() to free it.
https://bugzilla.gnome.org/show_bug.cgi?id=764985
2016-04-13 12:40:41 +03:00
Stefan Sauer
ec75b68984
tracerrecord: don't leak the spec structures
...
Change the gst_tracer_record_new() api to take the parameters the make the
spec structure directly. This allows us to own the top-level structure and
also collect the args so that we can take ownership of the sub-structures.
https://bugzilla.gnome.org/show_bug.cgi?id=760821
2016-01-22 10:07:26 +01:00
Stefan Sauer
f69382c5f9
tracer/gststats: fix mismatch between '.class' and tracer args
...
Clean up from the recent changes. The logging descriptiors did not match what we logged.
2016-01-20 09:14:12 +01:00
Tim-Philipp Müller
8641d7c911
tracers: fix thread-id casts to 64-bit ints on 32-bit systems
...
https://bugzilla.gnome.org/show_bug.cgi?id=760762
2016-01-18 11:28:28 +00:00
Stefan Sauer
84554af301
tracer/stats: use the right log template
...
When porting we used the wrong record (copy and paste).
2016-01-16 21:23:10 +01:00
Stefan Sauer
af91d23204
tracer: use the new flags to create the optional field in the format string
...
This spares us explicitly listing the field in the spec. and thus hide this
implementation detail.
2016-01-16 19:21:00 +01:00
Stefan Sauer
8cd76a918a
tracer: add a GstTracerValueFlags and replace strings
...
This allows us to document the flags and makes the logs a bit smaller.
2016-01-16 18:52:32 +01:00
Tim-Philipp Müller
8b88fc487f
gst.h: Don't spew warnings if GST_USE_UNSTABLE_API is not defined
...
Only hide GstTracer and GstTracerRecord API behind GST_USE_UNSTABLE_API,
but don't spew any warnings, otherwise everyone has to define this
to avoid compiler warnings.
This reverts parts of commit 89ee5d948d
.
2016-01-16 16:00:16 +00:00
Stefan Sauer
89ee5d948d
tracer: add a GFlag for the tracer scope
...
Port all tracers. Add the GST_USE_UNSTABLE_API flag to the internal CFLAGS so
that we don't have to specify this for gir, docs, mkenum, ...
2016-01-16 13:31:51 +01:00
Stefan Sauer
10b78d872b
tracerrecord: add a log record class
...
We use this class to register tracer log entry metadata and build a log
template. With the log template we can serialize log data very efficiently.
This also simplifies the logging code, since that is now a simple varargs
function that is not exposing the implementation details.
Add docs for the new class and basic tests.
Remove the previous log handler.
Fixes #760267
2016-01-15 21:54:01 +01:00
Stefan Sauer
30741e0206
tracers: code clean ups
...
Drop some trailing whilespace. Make field order consistent.
2016-01-10 14:30:05 +01:00
Stefan Sauer
2f41e7bc6a
tracer: harmonize the query hooks
...
In post hooks always pass the return value as the last param. Pass the query
also to post hooks since it is still alive.
2016-01-07 23:03:48 +01:00
Stefan Sauer
fb249dadcb
tracers/stats: add missing parameters to callback functions
2016-01-07 22:47:37 +01:00
Stefan Sauer
5e40639be7
tracer: make gst_tracing_register_hook_id static
...
We don't need to expose this as public API. Change the only plugin that was
using it.
2016-01-06 20:46:58 +01:00
Thiago Santos
9f26e5cc63
tracers: log: add missing hooks
...
Log all possible hooks
2015-11-12 15:39:32 -03:00
Thiago Santos
cf5e7c03c2
stats: log the element-new hook properly
...
To be able to get the time the elements were created instead of
just logging them without a time
2015-10-29 07:27:35 -03:00
Sebastian Dröge
2b8413e1cd
tracers: Only link against libgstprintf.la if the debugging system is enabled
...
It does not exist otherwise and linking will fail.
2015-10-07 12:01:16 +01:00
Stefan Sauer
d626c5b996
Revert "tracers: Only build getrusage() tracer if RUSAGE_THREAD is available"
...
This reverts commit 8ddbf76626
.
2015-10-07 12:22:34 +02:00
Stefan Sauer
03045d428b
tracers/rusage: ifdef the RUSAGE_THREAD usage
...
Some versions of andoid don't seem to have it.
2015-10-07 12:21:56 +02:00
Sebastian Dröge
8ddbf76626
tracers: Only build getrusage() tracer if RUSAGE_THREAD is available
2015-10-07 11:13:28 +01:00
Stefan Sauer
03821d18a0
tracers: disable the log tracer if debug logging is disabled
2015-10-06 18:46:24 +02:00
Stefan Sauer
34cf8f3252
makefile.am: Remove obsolete Android build cruft
...
This is not needed any longer.
2015-10-06 18:45:41 +02:00
Thiago Santos
7c5f7173c8
tracers: stats: add message structure to output
...
The name of the message is not enough. For example, state-change
is not enough to know the transition.
https://bugzilla.gnome.org/show_bug.cgi?id=754496
2015-10-05 19:06:41 -03:00
Thiago Santos
0913f699e2
tracer: gststats: add thread-id to log line
2015-10-05 20:59:39 +02:00
Thiago Santos
567865c81c
tracer: add pad query hooks
2015-10-05 20:59:39 +02:00
Mathieu Duponchelle
a9aab3c6c7
tracer: Use GST_TIME_ARGS when printing with GST_TIME_FORMAT.
2015-10-05 20:59:39 +02:00
Stefan Sauer
e5eb05741b
stats: TIMESTAMP -> PTS
2015-10-05 20:59:39 +02:00
Stefan Sauer
660049bb38
tracing: rename the global api to gst_tracing
...
This makes it more obvious what is the api for tracer elements and what is api
for the global state.
2015-10-05 20:59:39 +02:00
Stefan Sauer
5e2770566f
tracers: eliminate var_args
...
Register tracer hooks as GCallback. Use macros for hook dispatch and cast the
hook functions back to the appropriate type.
2015-10-05 20:59:39 +02:00
Stefan Sauer
b10b10cf1e
tracers: code cleanups
...
Move static variables to instance variables. Add finalize methods. Remove code
that is commented out. Cleanup locking code.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4881d1c16c
tracer: use GQuark or strings for the hook id
...
This way one can define new tracing probes without changing the core. We are
using our own quark table, as 1) we only want to initialize them if we're
tracing, 2) we want to share them with the tracers.
2015-10-05 20:59:39 +02:00
Stefan Sauer
1a3e218b89
tracer: simplify hook api
...
Instead of a single invoke() function and a 'mask', register to individual
hooks. This avoids one level of indirection and allows us to remove the
hook enums. The message enms are now renamed to hook enums.
2015-10-05 20:59:39 +02:00
Stefan Sauer
7b24d76260
tracer: drop the HookId hid from the invoke method
...
The MessageId is more detailed and anyway needed to interpret the varargs.
2015-10-05 20:59:39 +02:00
Stefan Sauer
4ab1e6e3f7
stats: fixup doc name and remove commented code
2015-10-05 20:59:39 +02:00