Commit | Line | Data |
---|---|---|
4ddbd0b7 PP |
1 | The +{macro-name}()+ utility macro was developed to make user space |
2 | tracing super simple, albeit with notable disadvantages compared to | |
3 | custom, full-fledged tracepoint providers: | |
4 | ||
5 | * All generated events have the same provider/event names. | |
6 | * There's no static type checking. | |
7 | * The only event field with user data you actually get, named `msg`, | |
8 | is a string potentially containing the values you passed to the | |
9 | macro using your own format. This also means that you cannot use | |
10 | filtering using a custom expression at run time because there are no | |
11 | isolated fields. | |
12 | * Since +{macro-name}()+ uses C standard library's man:vasprintf(3) | |
13 | function in the background to format the strings at run time, its | |
14 | expected performance is lower than using custom tracepoint providers | |
15 | with typed fields, which do not require a conversion to a string. | |
16 | * Generally, a string containing the textual representation of the | |
17 | user data fields is not as compact as binary fields in the | |
18 | resulting trace. | |
19 | ||
20 | Thus, +{macro-name}()+ is useful for quick prototyping and debugging, but | |
21 | should not be considered for any permanent/serious application | |
22 | instrumentation. | |
23 | ||
24 | See man:lttng-ust(3) to learn more about custom tracepoint providers. |