Skip to content

Latest commit

 

History

History
311 lines (280 loc) · 26.5 KB

CHANGELOG.md

File metadata and controls

311 lines (280 loc) · 26.5 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

  • Fail in case there's unresolved type in definitions (ecb7a1b) by Jiri Olsa <[email protected]>
    • Reverted in 2239756, waiting for a PR to fix an issue we found before re-enabling it

[0.9.1] 2019-06-25

Highlights

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

All Changes

Added

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

Changed

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

Fixed

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

Documentation

Internal

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

[0.9.0] 2019-03-16

Deprecated

Added

  • List usdt probes with -l (fa7d5f3) by Timothy J Fontaine [email protected]
  • Introduce perf formatting for ustack()/kstack() (db910b9) by Matheus Marchini [email protected]
  • Add increment and decrement operators (++/--) (c8d8a08, 6aa66a1, 223d8d8, 1f82aaf, 8c5c4ea) by Dale Hamel [email protected]
  • Add changelog file to keep track of unreleased changes (d11fb01) by Matheus Marchini [email protected]
  • Allow args with multiple tracepoints (a0a905f, 2df50d3, cddae1a) by Brendan Gregg [email protected]
  • Add elapsed builtin (0fde181) by Brendan Gregg [email protected]
  • Add support to demangle C++ symbols in userspace stack traces (872525c) by Augusto Caringi [email protected]
  • allow \r (e7f0584) by Brendan Gregg [email protected]
  • Use debuginfo files information when available (1132d42) by Augusto Caringi [email protected]
  • Add ustack([int limit])/kstack([int limit]) calls (08da997) by Matheus Marchini [email protected]
  • Allow custom provider name in USDT probe definition (361245c, 80d640a, 20ddfed, c3a6ff1) by Dale Hamel [email protected]
  • Detect kernel headers even if they are splitted into source/ and build/ directories (4d76385) by Kirill Smelkov [email protected]
  • Add support for arm64 (aarch64) (47fa8aa) by Ali Saidi [email protected]
  • Allow customizing stdout buffering mode via -b (1663b84) by Hongli Lai (Phusion) [email protected]
  • Add support to list tracepoint arguments (#323) (4a048fc) by Augusto Caringi [email protected]
  • Add ksym as a replacement for sym (50a66d2) by williangaspar [email protected]
  • Add kstack as a replacement for stack (e8b99cd, 840712b, f8f7ceb,6ec9a02) by williangaspar [email protected]
  • cmake: add BUILD_TESTING support (a56ab12) by Aleksa Sarai [email protected]
  • Add --version (61a4650, eab3675) by williangaspar [email protected]
  • Add hint to install docs and normalize format (c0084a2) by Daniel Xu [email protected]
  • Make bpftrace -l list sofware and hardware types (#44) (acd9a80) by Augusto Caringi [email protected]
  • Print program ID when the verbose option is enabled. (8e8258d) by David Calavera [email protected]

Changed

Fixed

  • Make sure we create map keys when we have all the typing information (971bd77) by Matheus Marchini [email protected]
  • Fix for new bpf_attach_kprobe signature (080bef8) by Matheus Marchini [email protected]
  • Fix string comparison improperly deallocating variables (ffa173a) by williangaspar [email protected]
  • Fix probe keys on maps when the map is used more than one time (df81736) by Matheus Marchini [email protected]
  • Fix using same variable name on multiple programs (61a14f2) by williangaspar [email protected]
  • Fix build on old compilers (644943a, 1b69272) by Kirill Smelkov [email protected]
  • Fix build with latest bcc (d64b36a) by williangaspar [email protected]
  • Don't throw warning for undefined types in tracepoint structure definition if args is not used (f2ebe1a) by Matheus Marchini [email protected]
  • Fix for 'redefinition of tracepoint' warning message (baaeade) by Augusto Caringi [email protected]
  • Minor fixes in our documentation (0667533) by Matheus Marchini [email protected]
  • Fix string comparison (5e114dd, 63acdb6) by williangaspar [email protected]
  • Prevent empty trigger functions to be optimized away with -O2 (#218) (9f2069b) by Augusto Caringi [email protected]
  • Fix -l behavior with shortcut probe names (2d30e31) by williangaspar [email protected]
  • Fix alpine docker build (#372) (2b83b67) by Dan Xu [email protected]
  • Fix tracepoint wildcards (946c785) by Brendan Gregg [email protected]
  • tests: fix codegen test fot call_hist (342fd6d) by Matheus Marchini [email protected]
  • docs: fix trivial typos (3da1980) by Xiaozhou Liu [email protected]
  • Fix symbol translation for func, sym, and stack (6276fb5) by Brendan Gregg [email protected]
  • Fix wrong package name in Ubuntu Dockerfile (f8e67a9) by xbe [email protected]
  • Fix wrong package name in build instructions (8e597de) by Daniel Xu [email protected]
  • Fix arguments and error messages for tracepoint shortcut t (0eddba7) by williangaspar [email protected]

Internal

  • Fix 'different signedness' warning messages in codegen call_[uk]stack.cpp (cb25318) by Augusto Caringi [email protected]
  • Fix 'signedness' warning message in tracepoint_format_parser.cpp (c3e562f) by Augusto Caringi [email protected]
  • Stop linking against bcc-loader-static (5fbb7a7) by Daniel Xu [email protected]
  • Speeding up runtime tests (60c5d96) by williangaspar [email protected]
  • docker: make sure debugfs is mounted (7dcfc47) by Zi Shen Lim [email protected]
  • Better coverage for variable_clear() (34fdded) by williangaspar [email protected]
  • Add missing space (c65e7c1) by puyuegang [email protected]
  • Ignore warnings on code generated by bison (a935942) by Matheus Marchini [email protected]
  • Ignore warnings from LLVM headers (b6c4fd6) by Matheus Marchini [email protected]
  • Downgrade back to c++14 (f6986d8) by Matheus Marchini [email protected]
  • Fix 'parameter not used' warning (2401ab3) by Matheus Marchini [email protected]
  • Fix new build warning msg after c++17 was enabled (e4cbe48) by Augusto Caringi [email protected]
  • Get rid of cmake CMP0075 policy warning (9b8208a) by Augusto Caringi [email protected]
  • Use C++17 instead of C++14 (4b4d5dc) by Alex Birch [email protected]
  • Re-enable more build warnings, fix related warnings #316 (8c383dc) by Augusto Caringi [email protected]
  • Define __BPF_TRACING__ before building (required for kernel 4.19+) (e0bf01d) by Kirill Smelkov [email protected]
  • Re-enable subset of build warnings and fix some related warnings #316 (f0f56b0) by Augusto Caringi [email protected]
  • Cleanup enforce_infinite_rmlimits : removed getrlimit() : Added error description using strerror() (d76465f) by T K Sourab [email protected]
  • use the new libbcc API: bcc_{create_map, prog_load} when possible (c03c39f) by Xiaozhou Liu [email protected]
  • resources: generate c++ file instead of c file (5e1350b) by Matheus Marchini [email protected]
  • docker: disable runtime tests on CI (0667b92) by Matheus Marchini [email protected]
  • Hide -inl.h header from interface (10a43d0) by Daniel Xu [email protected]

[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.