The Linux Trace Toolkit: next generation is an open source system software package for correlated tracing of the Linux kernel, user applications and libraries.
For more information, please visit
Configure and build Erlang with LTTng support:
For LTTng to work properly with Erlang/OTP you need the following packages installed:
LTTng-tools: a command line interface to control tracing sessions.
LTTng-UST: user space tracing library.
On Ubuntu this can be installed via
$ sudo aptitude install lttng-tools liblttng-ust-dev
See
After LTTng is properly installed on the system Erlang/OTP can be built with LTTng support.
$ ./configure --with-dynamic-trace=lttng
$ make
All tracepoints are in the domain of
All Erlang types are the string equivalent in LTTng.
process_spawn
Example:
process_spawn: { cpu_id = 3 }, { pid = "<0.131.0>", parent = "<0.130.0>", entry = "erlang:apply/2" }
process_link
Example:
process_link: { cpu_id = 3 }, { from = "<0.130.0>", to = "<0.131.0>", type = "link" }
process_exit
Example:
process_exit: { cpu_id = 3 }, { pid = "<0.130.0>", reason = "normal" }
process_register
Example:
process_register: { cpu_id = 0 }, { pid = "<0.128.0>", name = "dyntrace_lttng_SUITE" type = "register" }
process_scheduled
Example:
process_scheduled: { cpu_id = 0 }, { pid = "<0.136.0>", entry = "erlang:apply/2", type = "in" }
port_open
Example:
port_open: { cpu_id = 5 }, { pid = "<0.131.0>", driver = "'/bin/sh -s unix:cmd'", port = "#Port<0.1887>" }
port_exit
Example:
port_exit: { cpu_id = 5 }, { port = "#Port<0.1887>", reason = "normal" }
port_link
Example:
port_link: { cpu_id = 5 }, { from = "#Port<0.1887>", to = "<0.131.0>", type = "unlink" }
port_scheduled
Example:
port_scheduled: { cpu_id = 5 }, { pid = "#Port<0.1905>", entry = "close", type = "out" }
function_call
Example:
function_call: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:'-t_call/1-fun-1-'/0", depth = 0 }
function_return
Example:
function_return: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:waiter/0", depth = 0 }
function_exception
Example:
function_exception: { cpu_id = 5 }, { pid = "<0.144.0>", entry = "t:call_exc/1", class = "error" }
message_send
Example:
message_send: { cpu_id = 3 }, { from = "#Port<0.1938>", to = "<0.160.0>", message = "{#Port<0.1938>,eof}" }
message_receive
Example:
message_receive: { cpu_id = 7 }, { to = "<0.167.0>", message = "{<0.165.0>,ok}" }
gc_minor_start
Example:
gc_minor_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 0, heap = 610, old_heap = 0 }
gc_minor_end
Example:
gc_minor_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 120, heap = 1598, old_heap = 1598 }
gc_major_start
Example:
gc_major_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 8, heap = 2586, old_heap = 1598 }
gc_major_end
Example:
gc_major_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 240, heap = 4185, old_heap = 0 }