Releases: janestreet/magic-trace
magic-trace v1.2.3
What's Changed
Full Changelog: v1.2.2...v1.2.3
magic-trace v1.2.2
What's Changed
- Fix typos by @int-y1 in #297
- Add support for jcmd Compiler.perfmap by @theothornhill in #298
- Implement very basic TSX support by @Xyene in #299
- Merge
core
andsrc
directories by @Xyene in #300 - Reduce noise when OCaml exception tracking gets confused by @Xyene in #301
New Contributors
- @int-y1 made their first contribution in #297
- @theothornhill made their first contribution in #298
Full Changelog: v1.2.1...v1.2.2
magic-trace v1.2.1
What's Changed
- Fix
-trigger addr:...
selections by @Xyene in #289 - Do not display extremely long commandline arguments by @Xyene in #290
- Handle
tr end async
trace events by @Xyene in #288 - make it possible to invoke
magic-trace run -- prog args
by @v-gb in #292 - Upgrade to OCaml 4.14.0 by @Xyene in #294
- Don't assume
perf
is still alive after sending itSIGTERM
by @Xyene in #293 - Restore default SIGINT behavior after taking snapshot by @Xyene in #295
- Be more robust to seeing a poptrap without a matching pushtrap by @Xyene in #296
New Contributors
Full Changelog: v1.2.0...v1.2.1
magic-trace v1.2.0
What's Changed
- Display DSO if symbol is unknown by @Xyene in #209
- Added capability to attach to multiple PIDs for tracing by @lamoreauxaj in #218
- Added ability to trace CPU frequencies with perf by @lamoreauxaj in #219
- Add protocol to URLs embedded in help text by @shoffmeister in #220
- Allow running with sampling if Intel PT is unavailable by @lamoreauxaj in #224
- Improved speed of hex parsing in more places by @lamoreauxaj in #227
- Added comment explaining callstack order of Sample event by @lamoreauxaj in #229
- Filter trace to range by @pbaumbacher in #222
- Added support to run perf with dlfilter which filters out jumps within same function by @lamoreauxaj in #231
- Added env var to forcibly disable perf dlfilter by @lamoreauxaj in #232
- Allow extra spacing in cbr regex to not crash on some perf outputs by @lamoreauxaj in #235
- Added warnings to
-callgraph-mode
and added option for stitched LBR. by @lamoreauxaj in #228 - Fixed regex bug in CBR event when flags includes space by @lamoreauxaj in #239
- Updated
-trigger
help to specify triggers only apply to first PID passed by @lamoreauxaj in #238 - Disable dlfilter when printing trace to sexp by @lamoreauxaj in #240
- Add support for magic-trace to sample and show other events such as cache misses and branch misses by @lamoreauxaj in #234
- Added ability to fuzzy find on line number based triggers by @lamoreauxaj in #245
- .ocamlformat: 0.21 -> 0.24.1 by @hlian in #244
- .github/workflows/build.yml: download upx 3.96-2 from ftp.debian.org by @hlian in #252
- Demangle OCaml symbols by @ClyveGassant in #250
- Add separate events output in sexp or binio format by @Istlemin in #253
- Disable dlfilter by default by @cgaebel in #255
- Unwind the stack for caml_stash_backtrace by @cgaebel in #262
- Fix dlfilter filtering out trace errors by @Xyene in #265
- Only check for fzf if required to find symbol by @ecatmur in #277
- Add explicit tests around bogus symbol offset handling by @Xyene in #279
- Fix stairstepping OCaml traces when exceptions are involved by @Xyene in #280
- Miscellaneous changes ahead of 1.2 by @Xyene in #281
- Fix up some messages about sampling wiki links by @Xyene in #282
New Contributors
- @shoffmeister made their first contribution in #220
- @pbaumbacher made their first contribution in #222
- @hlian made their first contribution in #244
- @ClyveGassant made their first contribution in #250
- @Istlemin made their first contribution in #253
- @ecatmur made their first contribution in #277
Full Changelog: v1.1.0...v1.2.0
magic-trace v1.1.0
What's Changed
- Proper OCaml exception tracking by @Xyene in #204
- Add Go-specific hacks to fix demo.go by @cgaebel in #197
- Fix parsing of never-ending loop trace errors by @Xyene in #203
- Gracefully handle owee failures in
Elf.addr_table
by @cgaebel in #195 - Allow saving raw IPT data to .sexp format, bypassing .fxt generation by @Xyene in #208
- Give a good error message when
waitpid
raises by @cgaebel in #211
New Contributors
Full Changelog: v1.0.2...v1.1.0
magic-trace v1.0.2
What's Changed
Full Changelog: v1.0.1...v1.0.2
To install, download magic-trace
below, run chmod +x magic-trace
, then run ./magic-trace -help
.
magic-trace v1.0.0
This release contains a lot of improvements and bugfixes to magic-trace. Upgrading is highly recommended.
The full changelog is available here.
Statically-linked executables and Ubuntu 20.04-equivalent-or-newer packages are attached to this release.
Features
- The snapshot buffer size is now configurable
- Timing granularity is now configurable, with lower granularities having lower recording overhead
Fixes
- Fixed the class of broken traces caused by ignoring Intel PT decode errors
- Gracefully handle duplicate entries in perf map files
- Propagate errors from
perf
- Kernel threads are no longer shown when running as root, since they can't currently be traced
perf
now unconditionally exits whenmagic-trace
does, rather than occasionally outliving it- Fixed decoding failure when
-working-dir
is a relative path
Miscellaneous
- Sped up trace decoding
--version
now displays git version information- Command help text now contains example invocations
- Default trace file is now
trace.fxt
(used to betrace.ftf
); this is the correct file extension for Fuchsia traces - Many refactors under the hood to permit more unit testing
magic-trace v0.0.3
This release contains a lot of improvements and bugfixes to magic-trace. Upgrading is highly recommended.
The full changelog is available here.
Statically-linked executables and Ubuntu 20.04-equivalent-or-newer packages are attached to this release.
Features
- Add support for managed languages (reading of
perf
map files for symbol selection) - Add support for tracing the kernel
- Add support for executables compiled with basic DWARF 5 debug info
- Embed absolute timestamps in trace, so that they appear in the viewer and can be matched to logged events
- Report which frames had their start time inferred
- Mark addresses as pointers in the Fuchsia trace, so they show up as hexadecimal in the viewer
Fixes
- Make
fzf
an optional runtime dependency, rather than crash if it doesn't exist - Fixed
perf
output parsing for symbols including=
Miscellaneous
- Default to
trace.ftf
as the output file, moving an existingtrace.ftf
totrace.ftf.old
- Cleaned up the command line interface
magic-trace v0.0.2
This minor release contains largely groundwork for setting up a more regular release cycle.
The full changelog is available here.
Binaries for Ubuntu 20.04-equivalent-or-newer systems are included, as are packages. The next release will have statically-linked executables available for download.
Features
- Symbol name and post-relocation hex addresses are now printed when specifying
-symbol
- Decoding C++ symbols is now supported
Fixes
fzf
will now be started from anywhere in$PATH
, not just/usr/bin/fzf