Skip to content

Bloaty McBloatface v1.0

Choose a tag to compare
@haberman haberman released this 07 Aug 22:36

This is the first formal release of Bloaty.

Changes since Bloaty was first announced in Nov 2016:

  • Much better coverage / data quality: Bloaty now properly attributes sections of the binary like the symbol table, debugging information, relocations, and frame unwinding info. We even disassemble the binary looking for references to anonymous data members that do not have symbol table entries. This all means higher quality output, and much less of the binary is attributed to [None].
  • Native Mach-O support: Bloaty can now parse Mach-O files directly, instead of shelling out to other programs. The result is much faster and higher-quality output for Mach-O. Also the data sources that require debug info (like -d compileunits) now work with Mach-O.
  • WebAssembly support (EXPERIMENTAL): Bloaty can analyze sections and symbols in binary WebAssembly files.
  • Native C++ Demangling: Bloaty can now demangle C++ symbols without shelling out to c++filt. There are two separate demangling modes, one which strips all template parameters and parameter/return types (shortsymbols) and one that returns full demangled names (fullsymbols).
  • Profiling stripped binaries: Bloaty can read symbols and debug info from separate files. This allows you to profile stripped binaries.
  • Parallel file parsing: If you pass multiple files to Bloaty, it will scan them in parallel. If you are parsing lots of files and have lots of CPUs, this can save a lot of time.
  • Configuration files: All options you can specify on the command-line can be put in a configuration file instead (and vice versa). This is helpful if the options might otherwise overflow the command-line (for example, if you are parsing thousands of files). It also lets you save bits of configuration to a file for reuse.
  • Custom data sources: you can create your own data sources by applying regexes to the built-in sources. This lets you bucket symbols, source files, etc. in ways that make sense for your project.
  • CSV/TSV output: this is a robust way to parse Bloaty's output and use it in other programs. (The default, human-readable output is not designed to be parsed and its format may change in backward-incompatible ways).
  • Lots of bugfixes: Fixed lots of bugs that people reported in various platforms and configurations. Bloaty is fuzzed regularly now, and this has led to many bugfixes also.