Blame doc/man/tracef-tracelog-limitations.txt
|
Packit |
c04fcb |
The +{macro-name}()+ utility macro was developed to make user space
|
|
Packit |
c04fcb |
tracing super simple, albeit with notable disadvantages compared to
|
|
Packit |
c04fcb |
custom, full-fledged tracepoint providers:
|
|
Packit |
c04fcb |
|
|
Packit |
c04fcb |
* All generated events have the same provider/event names.
|
|
Packit |
c04fcb |
* There's no static type checking.
|
|
Packit |
c04fcb |
* The only event field with user data you actually get, named `msg`,
|
|
Packit |
c04fcb |
is a string potentially containing the values you passed to the
|
|
Packit |
c04fcb |
macro using your own format. This also means that you cannot use
|
|
Packit |
c04fcb |
filtering using a custom expression at run time because there are no
|
|
Packit |
c04fcb |
isolated fields.
|
|
Packit |
c04fcb |
* Since +{macro-name}()+ uses C standard library's man:vasprintf(3)
|
|
Packit |
c04fcb |
function in the background to format the strings at run time, its
|
|
Packit |
c04fcb |
expected performance is lower than using custom tracepoint providers
|
|
Packit |
c04fcb |
with typed fields, which do not require a conversion to a string.
|
|
Packit |
c04fcb |
* Generally, a string containing the textual representation of the
|
|
Packit |
c04fcb |
user data fields is not as compact as binary fields in the
|
|
Packit |
c04fcb |
resulting trace.
|
|
Packit |
c04fcb |
|
|
Packit |
c04fcb |
Thus, +{macro-name}()+ is useful for quick prototyping and debugging, but
|
|
Packit |
c04fcb |
should not be considered for any permanent/serious application
|
|
Packit |
c04fcb |
instrumentation.
|
|
Packit |
c04fcb |
|
|
Packit |
c04fcb |
See man:lttng-ust(3) to learn more about custom tracepoint providers.
|