)]}'
{
  "commit": "5f2bbc1069aecbc97fce688b2feafecb0eedfe86",
  "tree": "18e528d882bd1c801340777c222b01ca910331df",
  "parents": [
    "46b335ef7eef4cee8044985a958042a0fa53ccd5"
  ],
  "author": {
    "name": "Michael Anthony Knyszek",
    "email": "mknyszek@google.com",
    "time": "Fri Dec 13 07:23:39 2024 +0000"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Mon Dec 16 13:41:12 2024 -0800"
  },
  "message": "gocore: use dwarf-\u003eabi.Type map and type-walk deeper for direct ifaces\n\nThis change makes two major changes to typing the heap.\n\n1. It matches up DWARF names to internal/abi.Type addresses via the\n   DW_AT_Go_runtime_type attribute, which links the internal/abi.Type\n   address to the DWARF entry for a type. This allows us to fully and\n   unambiguously give every type an identity.\n\n2. It fixes what appears to be a minor bug in the type-walk: direct\n   interfaces that contain pointers (type is a *T and the data is also\n   a *T or a [1]*T or a struct{ *T }) were passed on as interior\n   pointers to the walk queue, but this could easily result in\n   unmergable interior chunks and loss of type information. Instead, we\n   know it\u0027s a pointer type then and there, and we can just walk it\n   directly, queuing up the pointed-to type instead. This makes the\n   type-walk just a little more precise.\n\nChange-Id: I8842cdef5e92596c3c0b1365c5f5297604b83113\nReviewed-on: https://go-review.googlesource.com/c/debug/+/635737\nReviewed-by: Nicolas Hillegeer \u003caktau@google.com\u003e\nAuto-Submit: Michael Knyszek \u003cmknyszek@google.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "22bb8b51232abbec365ef2ae661f6178f147f1bd",
      "old_mode": 33188,
      "old_path": "internal/core/process.go",
      "new_id": "92bf9b3916b791c9ef19ed6d5b024fa627c9e040",
      "new_mode": 33188,
      "new_path": "internal/core/process.go"
    },
    {
      "type": "modify",
      "old_id": "b9fead45c5bf6fcc32a4c98d4cc44c2f7e4c37bb",
      "old_mode": 33188,
      "old_path": "internal/gocore/dwarf.go",
      "new_id": "e3fc3219dd5526962a546d3fa4d38f5f73075551",
      "new_mode": 33188,
      "new_path": "internal/gocore/dwarf.go"
    },
    {
      "type": "modify",
      "old_id": "053e2749caf04b4bf78a557001a3842d634d8c48",
      "old_mode": 33188,
      "old_path": "internal/gocore/goroutine.go",
      "new_id": "b3eebb63a3943a30a2c72fcda3aab8cc44861310",
      "new_mode": 33188,
      "new_path": "internal/gocore/goroutine.go"
    },
    {
      "type": "modify",
      "old_id": "84994dc671910c29a0a4e7b081bc68bbcbd71b27",
      "old_mode": 33188,
      "old_path": "internal/gocore/module.go",
      "new_id": "214c7c0f677fe74dafe523f1f249a5d00f436d4c",
      "new_mode": 33188,
      "new_path": "internal/gocore/module.go"
    },
    {
      "type": "modify",
      "old_id": "b00d04d712bde64f089cbf2bba7b8273d7b7a772",
      "old_mode": 33188,
      "old_path": "internal/gocore/process.go",
      "new_id": "3a5b55c3d26e64bfb065f89113a61347c25cc240",
      "new_mode": 33188,
      "new_path": "internal/gocore/process.go"
    },
    {
      "type": "modify",
      "old_id": "7f663830dfe46c4a018d3e8d76821cc7bbc6b317",
      "old_mode": 33188,
      "old_path": "internal/gocore/type.go",
      "new_id": "1d6374086f06a6d52d366859b62e48d724e7c329",
      "new_mode": 33188,
      "new_path": "internal/gocore/type.go"
    }
  ]
}
