Apart from the `filename` member, we can also print `flags`, `mode`, and more. After the "common" members listed first, the members are specific to the tracepoint.
## 7. `usdt`: Static Tracing, User-Level
Syntax:
...
...
@@ -1019,7 +1051,9 @@ Note that for this example to work, bash had to be recompiled with frame pointer
-`sym(void *p)` - Resolve kernel address
-`usym(void *p)` - Resolve user space address
-`kaddr(char *name)` - Resolve kernel symbol name
-`uaddr(char *name)` - Resolve user-level symbol name
-`reg(char *name)` - Returns the value stored in the named register
-`system(char *fmt)` - Execute shell command
-`exit()` - Quit bpftrace
Some of these are asynchronous: the kernel queues the event, but some time later (milliseconds) it is processed in user-space. The asynchronous actions are: <tt>printf()</tt>, <tt>time()</tt>, and <tt>join()</tt>. Both <tt>sym()</tt> and <tt>usym()</tt>, as well as the variables <tt>stack</tt> and </tt>ustack</tt>, record addresses synchronously, but then do symbol translation asynchronously.
...
...
@@ -1148,7 +1182,23 @@ This is printing the `usbcore_name` string from drivers/usb/core/usb.c: