Skip to content

Latest commit

 

History

History
365 lines (326 loc) · 30.2 KB

CHANGELOG.md

File metadata and controls

365 lines (326 loc) · 30.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.9.2] 2019-07-31

Highlights

  • New environment variables (BPFTRACE_NO_USER_SYMBOLS, BPFTRACE_LOG_SIZE)
  • New probe type: memory watchpoint
  • Support for JSON output

All Changes

Added

  • Add vargs support for cat() builtin (similar to system) (7f1aa7b) by Augusto Caringi <acaringi@redhat.com>
  • Add memory watchpoint probe type (#790) (854cd4b) by Dan Xu <dxu@dxuuu.xyz>
  • Add support for Go symbol names to uaddr (#805) (e6eb3dd) by Jason Keene <jasonkeene@gmail.com>
  • add option for JSON output (5c6f20a) by Andreas Gerstmayr <andreas@gerstmayr.me>
  • Add $# for number of positional arguments (ec8b61a) by Mark Drayton <mdrayton@gmail.com>
  • Add BPFTRACE_NO_USER_SYMBOLS environment variable (#800) (41d2c9f) by Dan Xu <dxu@dxuuu.xyz>
  • Add line numbers to parser error messages (a584752, 2233ea7) by bas smit <bas@baslab.org>
  • Add new environment variable BPFTRACE_LOG_SIZE (2f7dc75, 7de1e84, 2f7dc75) by Ray Jenkins <ray.jenkins@segment.com>

Changed

  • Terminate when map creation fails (6936ca6) by bas smit <bas@baslab.org>
  • Print more descriptive error message on uprobe stat failure (0737ec8) by Dan Xu <dxu@dxuuu.xyz>
  • Allow '#' in attach point path (2dfbc93) by Dan Xu <dxu@dxuuu.xyz>
  • Disable func, retval and reg for tracepoints since tracepoints can't access this information (7bfc0f8) by bas smit <bas@baslab.org>

Fixed

  • Skip keys which were removed during iteration on print (bfd1c07) by Andreas Gerstmayr <agerstmayr@redhat.com>
  • Fix exiting prematurely on strace attach (a584752..0e97b2c) by Jay Kamat <jaygkamat@gmail.com>
  • Fix unused variable warnings (9d07eb5) by Daniel Xu <dxu@dxuuu.xyz>
  • Fix alignment issues on ntop (2006424) by Matheus Marchini <mat@mmarchini.me>
  • Fix BEGIN being triggered multiple times when bpftrace is run a second time (14bc835) by bas smit <bas@baslab.org>
  • Fix crash when using $0 (b41d66d) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix tcp tools printing errors (206b36c) by bas smit <bas@baslab.org>

Documentation

Internal

  • Fix failing test (086c018) by bas smit <bas@baslab.org>
  • Collapse bcc symbol resolvers by process executable (63ff8b0) by Daniel Xu <dxu@dxuuu.xyz>
  • Remove unneeded probe read (7d0aa99) by bas smit <bas@baslab.org>
  • Fix runtime test parser to not break with commented out tests (#824) (b73c963) by Augusto Mecking Caringi <acaringi@redhat.com>
  • bpftrace: optimize resolve_kname (#765) (ec5278d) by Matheus Marchini <mat@mmarchini.me>
  • Resolve symbol names using bcc_elf_foreach_sym (#811) (a2d9298) by Jason Keene <jasonkeene@gmail.com>
  • Add basic editorconfig for defining style (#775) (5b20829) by Jay Kamat <jaygkamat@gmail.com>
  • Auto-generate list of includes for codegen tests (e3b8ecd) by Alastair Robertson <alastair@ajor.co.uk>
  • Do not emit GEP instruction when pushing string literals to stack (#667) (e98530c) by Michał Gregorczyk <michalgr@users.noreply.github.com>
  • tool style tweaks (8bb0940) by Brendan Gregg <bgregg@netflix.com>
  • Clean up unused variable (#787) (8627e84) by Dan Xu <dxu@dxuuu.xyz>
  • Make member variables end with underscores (c76a8e4) by Alastair Robertson <alastair@ajor.co.uk>
  • Fail in case there's unresolved type in definitions (ecb7a1b, 2239756, a6a4fb3) by Jiri Olsa <jolsa@kernel.org>

[0.9.1] 2019-06-25

Highlights

  • Introduce compound assignment operators (+= and friends) (7f26468) by Matheus Marchini <mat@mmarchini.me>
  • Add support for arrays and IPv6 for the ntop builtin function (c9dd10f) by Matheus Marchini <mat@mmarchini.me>
  • Add basic support to enums (treat them as constants) (e4cb6ce) by Matheus Marchini <mat@mmarchini.me>
  • Add macro definition support (8826470,af67b56,14e892b) by Matheus Marchini <mat@mmarchini.me>, Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Add support for arrays and IPv6 for the ntop builtin function (c9dd10f) by Matheus Marchini <mat@mmarchini.me>
  • Allow comparison of two string variables (7c8e8ed) by williangaspar <williangaspar360@gmail.com>
  • Add pre and post behavior to ++ and -- operators (f2e1345...9fea147) by Alastair Robertson <alastair@ajor.co.uk>
  • [BREAKING CHANGE] Ban kprobes that cause CPU deadlocks (40cf190) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • [BREAKING CHANGE] Add unsafe-mode and make default execution mode safe-mode (981c3cf,4ce68cd) by Daniel Xu <dxu@dxuuu.xyz>

All Changes

Added

  • Introduce compound assignment operators (+= and friends) (7f26468) by Matheus Marchini <mat@mmarchini.me>
  • Add KBUILD_MODNAME (a540fba) by Brendan Gregg <bgregg@netflix.com>
  • Add flags for include paths and files (--include and -I, respectively) (632652f) by Matheus Marchini <mat@mmarchini.me>
  • List uprobes with -l (122ef6e) by Matheus Marchini <mat@mmarchini.me>
  • Add BPFTRACE_MAX_PROBES environment variable (ddb79df) by Matheus Marchini <mat@mmarchini.me>
  • Add option to redirect trace output to file (462a811) by bas smit <bas@baslab.org>
  • Add script to check kernel requirements (ac19743) by bas smit <bas@baslab.org>
  • Add USDT wildcard matching support (82dbe4e...3725edf,648a65a) by Dale Hamel <dale.hamel@srvthe.net>
  • Add support for arrays and IPv6 for the ntop builtin function (c9dd10f,24a463f) by Matheus Marchini <mat@mmarchini.me>
  • Add 'cat' builtin (ae1cfc9,ef9baf8) by Augusto Caringi <acaringi@redhat.com>
  • Add array indexing operator [] for one-dimensional, constant arrays (ec664a1) by Dale Hamel <dalehamel@users.noreply.github.com>
  • Allow dots to truncate fields in printf (0f636c9) by Brendan Gregg <bgregg@netflix.com>
  • Add BPFTRACE_MAP_KEYS_MAX environment variable, and increase default map keys limit to 4096 (fab8bf6) by Brendan Gregg <bgregg@netflix.com>
  • Add support for delimiters in join() statement (eb40386) by Jason Koch <jkoch@netflix.com>
  • Add basic support to enums (treat them as constants) (e4cb6ce) by Matheus Marchini <mat@mmarchini.me>
  • Add macro definition support (8826470,af67b56,14e892b) by Matheus Marchini <mat@mmarchini.me>, Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Add hardware:branch-misses (9631623) by Jason Koch <jkoch@netflix.com>
  • Allow comparison of two string variables (7c8e8ed) by williangaspar <williangaspar360@gmail.com>

Changed

  • Add pre and post behavior to ++ and -- operators (f2e1345...9fea147) by Alastair Robertson <alastair@ajor.co.uk>
  • Parse negative integer literals correctly (108068f) by Daniel Xu <dxu@dxuuu.xyz>
  • Tools improvements (9dbee04,a189c36) by Brendan Gregg <bgregg@netflix.com>
  • USAGE message trim (18d63b0) by Brendan Gregg <bgregg@netflix.com>
  • Allow probe builtin for BEGIN and END probes (3741efe) by bas smit <bas@baslab.org>
  • Default -d and -dd output to stdout (ecea569) by Jay Kamat <jaygkamat@gmail.com>
  • Return with error code if clang finds an error while parsing structs/enums/macros/includes (364849d) by Matheus Marchini <mat@mmarchini.me>
  • Restore map key validation (7826ee3) by Alastair Robertson <alastair@ajor.co.uk>
  • Add /usr/include to default header search path (32dd14b) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • More information in error message when failing to open script file (3b06e5f) by Alastair Robertson <alastair@ajor.co.uk>
  • [BREAKING CHANGE] Add unsafe-mode and make default execution mode safe-mode (981c3cf,4ce68cd) by Daniel Xu <dxu@dxuuu.xyz>
  • Safety measure for LLVM out of memory issue (6b53e4a) by Brendan Gregg <bgregg@netflix.com>
  • Allow non-zero lhist min value (51fdb6a) by bas smit <bas@baslab.org>
  • Improvements in startup speed (5ed8717,1ffb50f) by Matheus Marchini <mat@mmarchini.me>
  • When using -c, spawn the child process only when the tracing is ready (e442e9d) by Jiri Olsa <jolsa@kernel.org>
  • Allow more pointers as ints (3abc93e) by Brendan Gregg <bgregg@netflix.com>
  • Validate that PID (received via -p) is an integer (48206ad) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Promote map keys to 64-bit (e06e39d) by Brendan Gregg <bgregg@netflix.com>
  • Add hint when traced PID is not running (9edb3e1) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Allow pointers in printf, mapkeys, and filters (0202412,280f1c6) by Brendan Gregg <bgregg@netflix.com>
  • Allow ksym() lookups on function pointers (2139d46) by Brendan Gregg <bgregg@netflix.com>
  • [BREAKING CHANGE] Ban kprobes that cause CPU deadlocks (40cf190) by Javier Honduvilla Coto <javierhonduco@gmail.com>

Fixed

  • Workaround for asm goto in Kernel 5+ headers (60263e1) by Matheus Marchini <mat@mmarchini.me>
  • Properly handle invalid args utilization (13c2e2e) by Augusto Caringi <acaringi@redhat.com>
  • Fix abort caused by lhist with incorrect number of arguments (41036b9) by bas smit <bas@baslab.org>
  • Fix anonymous struct parsing (ea63e8b) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix code generation for bitwise and logical not on integer values (f522296) by synth0 <synthkaf@outlook.com>
  • Fix typo in type mismatch error message (83924f8) by Jay Kamat <jaygkamat@gmail.com>
  • Fix clearing action for some aggregations (dcd657e) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Fix possible crash if an invalid char is used in search (c4c6894) by Augusto Caringi <acaringi@redhat.com>
  • Fix headers includes by using -isystem rather than -I (32daaa2) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Fix exit() function bypassing END probe processing #228 (f63e1df,e4c418e,5cce746) by Augusto Caringi <acaringi@redhat.com>
  • Fix order in which probes fire (a4bf870) by John Gallagher <john.gallagher@delphix.com>
  • Stop throwing 'failed to initialize usdt context for path' error message (1fa3d3c) by Augusto Caringi <acaringi@redhat.com>
  • Fix stringification of ntop keys in maps (598050e) by Matheus Marchini <mat@mmarchini.me>
  • Fix parsing of forward-decl structs inside structs (354c919) by Matheus Marchini <mat@mmarchini.me>
  • Fix struct definition from headers (4564d55) by Matheus Marchini <mat@mmarchini.me>
  • Avoid crash if incorrect command line option is used (aa24f29) by Augusto Caringi <acaringi@redhat.com>
  • Fix clang_parser for LLVM 8+ (80ce138) by Matheus Marchini <mat@mmarchini.me>
  • Fix semicolon being required in some cases after if statements (13de974) by Matheus Marchini <mat@mmarchini.me>
  • Throw error message if argN or retval is used with incorrect probe type (b40354c) by Augusto Caringi <acaringi@redhat.com>
  • Fix USDT listing (-l) without a search pattern (af01fac) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Add missing space to error message (e1f5f14) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix unroll in some cases (mostly when the generated code was large) (702145c) by Matheus Marchini <mat@mmarchini.me>

Documentation

Internal

  • [tests] add missing tests to codegen.cpp (012ebda) by Matheus Marchini <mat@mmarchini.me>
  • tests: add runtime tests for regression bugs (ee57b6f) by Matheus Marchini <mat@mmarchini.me>
  • vagrant: add Ubuntu 19.04 box (60e6d0a) by Matheus Marchini <mat@mmarchini.me>
  • docker: add Fedora 30 (9ccafa0) by Zi Shen Lim <zlim.lnx@gmail.com>
  • Add Vagrantfile for ubuntu (b221f79) by bas smit <bas@baslab.org>
  • tests: fix and improve runtime tests (c7b3b2f) by Matheus Marchini <mat@mmarchini.me>
  • Clean up includes in clang_parser (374c240) by Daniel Xu <dxu@dxuuu.xyz>
  • Remove double check_nargs call (c226c10) by bas smit <bas@baslab.org>
  • Fix call.system runtime test (3b4f578) by Daniel Xu <dxu@dxuuu.xyz>
  • Fix call.str runtime test (8afbc22) by Daniel Xu <dxu@dxuuu.xyz>
  • Fix k[ret]probe_order runtime tests (27a334c) by Daniel Xu <dxu@dxuuu.xyz>
  • Remove old TODO (5be3752) by Alastair Robertson <alastair@ajor.co.uk>
  • Add clang_parser::parse_fail test (6fd7aac) by Jiri Olsa <jolsa@kernel.org>
  • Fix some bugs with positional parameters (13fb175) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix runtime tests (a05ee59) by bas smit <bas@baslab.org>
  • Enable multiline matching for runtime test regex (c8763e4) by bas smit <bas@baslab.org>
  • Add environment var support to runtime tests (543513e) by bas smit <bas@baslab.org>
  • Disable codegen.printf_offsets test for LLVM5 CI build (ea8a7e4) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix LLVM 5 tests (938e79b) by Alastair Robertson <alastair@ajor.co.uk>
  • Refactor find_wildcard_matches() to allow for proper testing (371c7cf) by Alastair Robertson <alastair@ajor.co.uk>
  • tests: Use Python 3 for integration tests + test fix (#651) (4b0e477) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Add --unsafe to more runtime tests (8b2234a) by Daniel Xu <dxu@dxuuu.xyz>
  • Fix 'ignoring return value' build warning (bdc9f16) by Augusto Caringi <acaringi@redhat.com>
  • Fix 'signed overflow' related build warning (0ece2a9) by Augusto Caringi <acaringi@redhat.com>
  • Fix UnboundLocalError on skipped test (03958cb) by John Gallagher <john.gallagher@delphix.com>
  • Use getopt_long instead of getopt (d732298) by Daniel Xu <dxu@dxuuu.xyz>
  • Fix docs typo (05bf095) by bas smit <bas@baslab.org>
  • check explicitly for systemtap sys/sdt.h and ignore if not present (831633d) by Jason Koch <jkoch@netflix.com>
  • Suppress build warning in GCC >=8 caused by #474 (71d1cd5) by Augusto Caringi <acaringi@redhat.com>
  • Remove more tabs (e9594dd) by Alastair Robertson <alastair@ajor.co.uk>
  • Convert tabs to spaces (585e8b5) by Alastair Robertson <alastair@ajor.co.uk>
  • Add existence tests for kstack, kstack() and ustack() (954d93d) by Alastair Robertson <alastair@ajor.co.uk>
  • [tests] more runtime tests enhancements (#586) (249c7a1) by Matheus Marchini <mat@mmarchini.me>
  • Codegen: Fix assigning non-struct "internal" values to maps (4020a5c) by Alastair Robertson <alastair@ajor.co.uk>
  • Fix typo on LLVM_REQUESTED_VERSION macro in CMakeLists.txt (82dbe4e) by Quentin Monnet <quentin.monnet@netronome.com>
  • Fix build warning (a77becb) by Alastair Robertson <alastair@ajor.co.uk>
  • [tests] allow tests to be skipped if a given condition is not met (59fa32a) by Matheus Marchini <mat@mmarchini.me>
  • [tests] make other.if_compare_and_print_string less flaky (840bbb3) by Matheus Marchini <mat@mmarchini.me>
  • Fix compile warnings and mark more functions as const (cfb058d) by Alastair Robertson <alastair@ajor.co.uk>
  • Misc readability fixes (9581e01) by Fangrui Song <i@maskray.me>
  • build: unify dockerfiles under a bionic image (445fb61) by Matheus Marchini <mat@mmarchini.me>
  • [tests] fix and enhance runtime tests (ea5deb9) by Matheus Marchini <mat@mmarchini.me>
  • [tests] add test script to run tools with -d (4ff113d) by Matheus Marchini <mat@mmarchini.me>
  • [clang_parser] decouple kernel cflags from the parser method (ad753d5) by Matheus Marchini <mat@mmarchini.me>
  • Address TODO items related to objdump dependency (382b9b7) by Adam Jensen <acjensen@gmail.com>
  • Fall back to objdump/grep if bcc is older (fdd02ec) by Adam Jensen <acjensen@gmail.com>
  • [clang_parser] pass BPFtrace as arg instead of StructMap (a0af75f) by Matheus Marchini <mat@mmarchini.me>
  • [ast] introduce Identifier type to AST (389d55f) by Matheus Marchini <mat@mmarchini.me>
  • use CMAKE_SYSTEM_PROCESSOR when selecting whether to include x86_64 or aarch64 sources (0ea7a63) by Michał Gregorczyk <michalgr@fb.com>
  • Clearify error message for mismatched llvm. (9b77fee) by George Slavin <george.r.slavin@gmail.com>
  • Add more info to LLVM mismatch error message (1e3b1be) by George Slavin <george.r.slavin@gmail.com>
  • Allow 0 as kernel version during first attempt to call bcc_prog_load (13499ac) by Michał Gregorczyk <michalgr@fb.com>
  • Fix bpftrace_VERSION_MINOR in CMakeLists.txt (8 -> 9) (13321eb) by Matheus Marchini <mat@mmarchini.me>
  • Fix version information when not building inside a git repo (#489) (1f33126) by Augusto Caringi <acaringi@redhat.com>
  • Do not try to load bpf program with unknown kernel version (2c00b7f) by Michał Gregorczyk <michalgr@fb.com>
  • Add better checks for llvm version (4fe081e) by George Slavin <george.r.slavin@gmail.com>
  • Fix deprecated stack warning in builtin_stack test (a1aaed8) by George Slavin <george.r.slavin@gmail.com>
  • add test for 32-bit tp args (77f7cb7) by Brendan Gregg <bgregg@netflix.com>
  • tests: add some basic integration tests (e9805af) by Javier Honduvilla Coto <javierhonduco@gmail.com>
  • Fix and simplify lexer.l (57bae63) by Fangrui Song <i@maskray.me>
  • Fix 2 clang warnings: -Wmismatched-tags and -Wpessimizing-move (18da040) by Fangrui Song <i@maskray.me>
  • Revert "Stop linking against bcc-loader-static" (5b6352c) by Alastair Robertson <alastair@ajor.co.uk>
  • fix typo on BPF_FUNC_get_current_cgroup_id missing message (27371c3) by Jason Koch <jkoch@netflix.com>
  • propagate HAVE_GET_CURRENT_CGROUP_ID to ast modules (57e30da) by Jason Koch <jkoch@netflix.com>
  • Add missing include (5763dc2) by Michał Gregorczyk <michalgr@fb.com>
  • No need for if when we're not doing anything (a65ad14) by Alastair Robertson <alastair@ajor.co.uk>
  • Make indirect* related data static (24d9dd2) by Jiri Olsa <jolsa@kernel.org>
  • Fix issues, add tests and improve reliability of positional parameters (acec163,f2e1345) by Matheus Marchini <mat@mmarchini.me>

[0.9.0] 2019-03-16

Deprecated

Added

Changed

Fixed

Internal

[0.8.0] - 2019-01-06

This is a release to aid packaging. bpftrace has not reached a 1.0 release status yet, as there are still development changes and things to fix. But what is here should be tremendously useful, provided you bear in mind that there will be some changes made to the programming language and command line options between now and a 1.0 release, so any tools or documentation written will become out of date and require changes. If you are anxiously waiting a 1.0 release, please consider contributing so that it can be released sooner.