Debug Builds
A debugger can set breakpoints in a plugin. Use a Traffic Server debug
build and compile the plugin with the -g
option. A debugger can also
be used to analyze a core dump. To generate core, set the size limit of
the core files in the records.config
file to -1 as follows:
CONFIG :ts:cv:`proxy.config.core_limit` INT -1
This is the equivalent of setting ulimit -c unlimited
Debugging Tips:
Use a Traffic Server debug version.
Use assertions in your plugin (
TSAssert()
andTSReleaseAssert()
).
SystemTap and DTrace support
Traffic Server can be instrumented with SystemTap on Linux systems, or
DTrace on *BSDs and macOS. In order to use such tools, Traffic Server needs
to be built with -g
, or the debug symbols need to be installed. On Debian
systems, install the trafficserver-dbgsym
package to install the debug
symbols.
In addition to the normal probe points that can be used with SystemTap and DTrace, such as function calls and specific statements, Traffic Server does provide SDT markers at various interesting code paths.
Pass the --enable-systemtap
flag to ./configure
in order to build
Traffic Server with dtrace style markers (SDT). On Traffic Server builds with
SDT markers enabled, you can list the available markers with stap -L
'process("/path/to/traffic_server").mark("*")
.
See the SystemTap documentation and the DTrace guide for more information.