It is more instinctive for the typical reader to immediately recognize
command lines when they start with the classic prompts.
On the online version of the man pages, those prompts are treated
specially to make them non-selectable. This makes it possible to copy
multiple command lines at once (without copying the prompts) and to
paste them to your shell.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-*LD_PRELOAD=liblttng-ust-cyg-profile-fast.so* my-app
+$ *LD_PRELOAD=liblttng-ust-cyg-profile-fast.so* my-app
Launch your application by preloading
`liblttng-ust-cyg-profile.so` for slower, more verbose function
Launch your application by preloading
`liblttng-ust-cyg-profile.so` for slower, more verbose function
-*LD_PRELOAD=liblttng-ust-cyg-profile.so* my-app
+$ *LD_PRELOAD=liblttng-ust-cyg-profile.so* my-app
-*LD_PRELOAD=liblttng-ust-dl.so* my-app
+$ *LD_PRELOAD=liblttng-ust-dl.so* my-app
Create the tracepoint provider object file:
[role="term"]
Create the tracepoint provider object file:
[role="term"]
---------------
-cc -c -I. tp.c
---------------
+----
+$ cc -c -I. tp.c
+----
NOTE: Although an application instrumented with LTTng-UST tracepoints
can be compiled with a C++ compiler, tracepoint probes should be
NOTE: Although an application instrumented with LTTng-UST tracepoints
can be compiled with a C++ compiler, tracepoint probes should be
tracepoint provider object files, as a static library:
[role="term"]
tracepoint provider object files, as a static library:
[role="term"]
----------------
-ar rc tp.a tp.o
----------------
+----
+$ ar rc tp.a tp.o
+----
Using a static library does have the advantage of centralising the
tracepoint providers objects so they can be shared between multiple
Using a static library does have the advantage of centralising the
tracepoint providers objects so they can be shared between multiple
(`libc` on a BSD system):
[role="term"]
(`libc` on a BSD system):
[role="term"]
--------------------------------------
-cc -o app tp.o app.o -llttng-ust -ldl
--------------------------------------
+----
+$ cc -o app tp.o app.o -llttng-ust -ldl
+----
nloption:-fpic option:
[role="term"]
nloption:-fpic option:
[role="term"]
---------------------
-cc -c -fpic -I. tp.c
---------------------
+----
+$ cc -c -fpic -I. tp.c
+----
It is then linked as a shared library like this:
[role="term"]
It is then linked as a shared library like this:
[role="term"]
--------------------------------------------------------
-cc -shared -Wl,--no-as-needed -o tp.so tp.o -llttng-ust
--------------------------------------------------------
+----
+$ cc -shared -Wl,--no-as-needed -o tp.so tp.o -llttng-ust
+----
This tracepoint provider shared object isn't linked with the user
application: it must be loaded manually. This is why the application is
This tracepoint provider shared object isn't linked with the user
application: it must be loaded manually. This is why the application is
---------------------------------
-cc -o app app.o tp-define.o -ldl
---------------------------------
+----
+$ cc -o app app.o tp-define.o -ldl
+----
There are two ways to dynamically load the tracepoint provider shared
object:
There are two ways to dynamically load the tracepoint provider shared
object:
--------------------------------------
-cc -c -I. tp.c
-cc -c app.c
-cc -o app tp.o app.o -llttng-ust -ldl
--------------------------------------
+----
+$ cc -c -I. tp.c
+$ cc -c app.c
+$ cc -o app tp.o app.o -llttng-ust -ldl
+----
Using the man:lttng(1) tool, create an LTTng tracing session, enable
all the events of this tracepoint provider, and start tracing:
[role="term"]
Using the man:lttng(1) tool, create an LTTng tracing session, enable
all the events of this tracepoint provider, and start tracing:
[role="term"]
-----------------------------------------------
-lttng create my-session
-lttng enable-event --userspace 'my_provider:*'
-lttng start
-----------------------------------------------
+----
+$ lttng create my-session
+$ lttng enable-event --userspace 'my_provider:*'
+$ lttng start
+----
You may also enable specific events:
[role="term"]
You may also enable specific events:
[role="term"]
-----------------------------------------------------------
-lttng enable-event --userspace my_provider:big_event
-lttng enable-event --userspace my_provider:event_instance2
-----------------------------------------------------------
+----
+$ lttng enable-event --userspace my_provider:big_event
+$ lttng enable-event --userspace my_provider:event_instance2
+----
Run the application:
[role="term"]
Run the application:
[role="term"]
---------------------
-./app some arguments
---------------------
+----
+$ ./app some arguments
+----
Stop the current tracing session and inspect the recorded events:
[role="term"]
Stop the current tracing session and inspect the recorded events:
[role="term"]
-----------
-lttng stop
-lttng view
-----------
+----
+$ lttng stop
+$ lttng view
+----
Tracepoint provider header file
Tracepoint provider header file
----------------------------
-cc -o app app.c -llttng-ust
----------------------------
+----
+$ cc -o app app.c -llttng-ust
+----
You can create an LTTng tracing session, enable the `tracef()` events,
and start the created tracing session like this:
[role="term"]
You can create an LTTng tracing session, enable the `tracef()` events,
and start the created tracing session like this:
[role="term"]
----------------------------------------------------
-lttng create my-session
-lttng enable-event --userspace 'lttng_ust_tracef:*'
-lttng start
----------------------------------------------------
+----
+$ lttng create my-session
+$ lttng enable-event --userspace 'lttng_ust_tracef:*'
+$ lttng start
+----
Next, start the program to be traced:
[role="term"]
Next, start the program to be traced:
[role="term"]
Finally, stop the tracing session, and inspect the recorded events:
[role="term"]
Finally, stop the tracing session, and inspect the recorded events:
[role="term"]
-----------
-lttng stop
-lttng view
-----------
+----
+$ lttng stop
+$ lttng view
+----
----------------------------
-cc -o app app.c -llttng-ust
----------------------------
+----
+$ cc -o app app.c -llttng-ust
+----
You can create an LTTng tracing session, enable all the `tracelog()`
events, and start the created tracing session like this:
[role="term"]
You can create an LTTng tracing session, enable all the `tracelog()`
events, and start the created tracing session like this:
[role="term"]
----------------------------------------------------
-lttng create my-session
-lttng enable-event --userspace 'lttng_ust_tracelog:*'
-lttng start
----------------------------------------------------
+----
+$ lttng create my-session
+$ lttng enable-event --userspace 'lttng_ust_tracelog:*'
+$ lttng start
+----
Or you can enable `tracelog()` events matching a log level at least
as severe as a given log level:
[role="term"]
Or you can enable `tracelog()` events matching a log level at least
as severe as a given log level:
[role="term"]
--------------------------------------------------------
-lttng enable-event --userspace 'lttng_ust_tracelog:*' \
+----
+$ lttng enable-event --userspace 'lttng_ust_tracelog:*' \
--------------------------------------------------------
Next, start the program to be traced:
[role="term"]
Next, start the program to be traced:
[role="term"]
-------------------------------------------------
-./app a few arguments passed to this application
-------------------------------------------------
+----
+$ ./app a few arguments passed to this application
+----
Finally, stop the tracing session, and inspect the recorded events:
[role="term"]
Finally, stop the tracing session, and inspect the recorded events:
[role="term"]
-----------
-lttng stop
-lttng view
-----------
+----
+$ lttng stop
+$ lttng view
+----