)]}'
{
  "commit": "5881ac47f1698c445cf0e3faec94b4111d679bc1",
  "tree": "027f8e8fda309ed965b3a3c51367361a4323a32a",
  "parents": [
    "85c445852cd38f116ef64183f6251d20d7c1d93f"
  ],
  "author": {
    "name": "Christopher Ferris",
    "email": "cferris@google.com",
    "time": "Fri Dec 12 00:35:00 2025 +0000"
  },
  "committer": {
    "name": "Christopher Ferris",
    "email": "cferris@google.com",
    "time": "Fri Dec 12 03:36:11 2025 +0000"
  },
  "message": "Add a relative pc and shared library to trace.\n\nRewrite the code to still support the fdtrack_iterate function,\nbut add an internal version that is used by both. One only uses\nthe function name and function offsets. The other uses the unwinder\nframe data directly, and the default one will also display\nthe relative pc and the shared library in the backtrace.\n\nOther fixes:\n- Always demangle the function names.\n- Add a lock around the fatal error to prevent mutliple fatal\n  happening and accessing the static variables at the same tie.\n\nBug: 462283002\n\nTest: All unit tests pass.\nTest: Run setprop persist.sys.debug.fdtrack_enable_threshold 1\nTest: and kill -39 \u003csystem_server\u003e\nTest: Verify the fdtrack output.\nTest: Did the same, but triggered the fatal path.\nChange-Id: I10d31088e6f96f624b62af8ee384f34d86a67ca1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "927f6854df93f7bd4648a8b5e94533a63c2407e8",
      "old_mode": 33188,
      "old_path": "libfdtrack/fdtrack.cpp",
      "new_id": "697440c5bcd1ae789b03ede62150e2c6c5202831",
      "new_mode": 33188,
      "new_path": "libfdtrack/fdtrack.cpp"
    }
  ]
}
