)]}'
{
  "commit": "f3082a66f2d2ac39ca90242fc001b2012fd16802",
  "tree": "bb780e15ebf593860b42cbadddd8fd350eb2793b",
  "parents": [
    "04b63c9aceb47d386031d4b444cb676c2107f47e"
  ],
  "author": {
    "name": "Lalit Maganti",
    "email": "lalitmaganti@gmail.com",
    "time": "Wed Sep 02 23:40:17 2026 +0100"
  },
  "committer": {
    "name": "Lalit Maganti",
    "email": "lalitmaganti@gmail.com",
    "time": "Thu Sep 03 00:28:51 2026 +0100"
  },
  "message": "tp: bundle source files and disassembly alongside symbols\n\n`trace_processor bundle` now also writes sources.pb and disassembly.pb\nmembers so the UI can show annotated source and assembly without the\nbinaries or source tree at hand.\n\nSource files are the ones referenced by symbolized frames, both from\nsymbols already in the trace and those just produced. Only absolute\npaths are tried, files over 1 MB are skipped and at most 16 MB is\nbundled; --source-prefix-map FROM\u003dTO reads files under a different root\nwhile keeping the debug info path as the key, and --no-sources skips\nthe step.\n\nDisassembly covers the functions containing sampled addresses of every\nmapping the local symbolizer resolved against a binary on disk. The\nsymbolizer now reports that binary and the mapping-to-link-time address\ncorrection; the bundler finds the containing functions with llvm-nm and\ndisassembles each with llvm-objdump, keeping bytes, text, statically\nknown branch targets and source lines. When the symbols came from a\nsplit debug file (a .dSYM bundle or an ELF holding only debug info) the\ncode is taken from the mapping\u0027s own path, verified to have the same\nbuild id, with objdump pointed at the debug file for lines. The last\nsymbol of a section extends to the section\u0027s end. --no-disassembly\nskips the step. Both steps report what they bundled and, with\n--verbose, what they could not.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "16e76499e2f5c7fadb0bbd046ae876bfbfd7c676",
      "old_mode": 33188,
      "old_path": "Android.bp",
      "new_id": "5d79ad0341515e7aeb61b9d7b1b46b393e414dc6",
      "new_mode": 33188,
      "new_path": "Android.bp"
    },
    {
      "type": "modify",
      "old_id": "308d4667a0459a9fae2a7bc04970176bf3d80079",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "58678b9c561936088953b7594d47b092bbf74ec7",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "c4fca19384edb4280a05441ed79a1d191f845542",
      "old_mode": 33188,
      "old_path": "docs/learning-more/symbolization.md",
      "new_id": "51d6ed93b645c09ba205377d6bac53bec9616d1e",
      "new_mode": 33188,
      "new_path": "docs/learning-more/symbolization.md"
    },
    {
      "type": "modify",
      "old_id": "a040e31870e4b731f235db9985c59db5176d580c",
      "old_mode": 33188,
      "old_path": "src/trace_processor/BUILD.gn",
      "new_id": "2931a7262679ee19045266e5fd475992962f16c9",
      "new_mode": 33188,
      "new_path": "src/trace_processor/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "88fc42cc53023e7bfe4096688336eaebfbf5bb5e",
      "old_mode": 33188,
      "old_path": "src/trace_processor/shell/bundle_subcommand.cc",
      "new_id": "30fe1d220a81e7ad8d7c792e3b5387f4056c9d60",
      "new_mode": 33188,
      "new_path": "src/trace_processor/shell/bundle_subcommand.cc"
    },
    {
      "type": "modify",
      "old_id": "f71687e90f1ea18500b6d1ef188dbebd58b6fb77",
      "old_mode": 33188,
      "old_path": "src/trace_processor/shell/bundle_subcommand.h",
      "new_id": "f396dd8d7a5fd83f615975846575c823c5321f4f",
      "new_mode": 33188,
      "new_path": "src/trace_processor/shell/bundle_subcommand.h"
    },
    {
      "type": "modify",
      "old_id": "cb1ef3e558183ff0a05b17ee3c8c0b2c77ba5a6f",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/symbolizer/local_symbolizer.cc",
      "new_id": "9e49d52e3bc3d0a459bbb5c84fd5f1e63489a9ce",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/symbolizer/local_symbolizer.cc"
    },
    {
      "type": "modify",
      "old_id": "95704ebb696de8f2e59fb82c040c3fad868fc239",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/symbolizer/symbolize_database.cc",
      "new_id": "61328c584fda2be97f4f5e4f0e9397fc10b5fcc8",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/symbolizer/symbolize_database.cc"
    },
    {
      "type": "modify",
      "old_id": "c3e3164b36824df11170824080c98cf5be51b259",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/symbolizer/symbolize_database.h",
      "new_id": "fb2f2de72b36e3996cf473a5b9d546652e260b59",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/symbolizer/symbolize_database.h"
    },
    {
      "type": "modify",
      "old_id": "8e12aef9e0ea791d40833465fa6cf3ea76489077",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/symbolizer/symbolizer.h",
      "new_id": "f5b4461a99e463cf2a852fbbdb39bdba04067ba3",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/symbolizer/symbolizer.h"
    },
    {
      "type": "modify",
      "old_id": "87f4b781568e25de56e05204c98471fd302ec881",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/trace_enrichment/BUILD.gn",
      "new_id": "10e25a9d86ba5108973832b897ad2ee97ee5ee36",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8da13394083a69c76d8b0e40d450ae19864ffd3b",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/disassembly.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1862e5af8e04666b6ada06390ac6fb3603a7963",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/disassembly.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "908e77a1a1d1e1a2d50a0a72a491d5008cab12db",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/disassembly_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf640e9247f7b912f9b635eddd6690634229cac8",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/source_files.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b36d2f719fa0eaa88a4837fbbadd7dc59a9e6191",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/source_files.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "495fa789f0b6ef2961deeac9f6dc380948004908",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/source_files_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "ab051e74ce288bd15facc893167ba8a45064713f",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/trace_enrichment/trace_enrichment.cc",
      "new_id": "4dba6d3e419be55acd8a1d9f7f5645fc4917c43a",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/trace_enrichment.cc"
    },
    {
      "type": "modify",
      "old_id": "d006d01e46a7cf6532c4b6372e68419b1ff2418b",
      "old_mode": 33188,
      "old_path": "src/trace_processor/util/trace_enrichment/trace_enrichment.h",
      "new_id": "c484a3d5e6fc8526365cd07ca77225c9cd745060",
      "new_mode": 33188,
      "new_path": "src/trace_processor/util/trace_enrichment/trace_enrichment.h"
    },
    {
      "type": "modify",
      "old_id": "6543e3ceccb5e16aedb8c67d5d58c78d5422d6cc",
      "old_mode": 33188,
      "old_path": "src/traceconv/trace_to_bundle.cc",
      "new_id": "940fea828172b2e83690f98c2be1af18906e749d",
      "new_mode": 33188,
      "new_path": "src/traceconv/trace_to_bundle.cc"
    },
    {
      "type": "modify",
      "old_id": "f525341dbaefb04ba580fb4ee6ffa0e0f94cd719",
      "old_mode": 33188,
      "old_path": "src/traceconv/trace_to_bundle.h",
      "new_id": "eb7fa62bac759c21c5fb76a65b5a84547b0c26cf",
      "new_mode": 33188,
      "new_path": "src/traceconv/trace_to_bundle.h"
    }
  ]
}
