)]}'
{
  "commit": "6a8a74986c357b0c6fa0dfd2b4b9230af8d39d1a",
  "tree": "b6612a8313ee0071f46b8660dc44e413c6c1b743",
  "parents": [
    "a45603bd68017d2587fef9b0e728002943064349"
  ],
  "author": {
    "name": "Antonio Maiorano",
    "email": "amaiorano@google.com",
    "time": "Tue Jul 21 16:23:14 2020 -0400"
  },
  "committer": {
    "name": "Antonio Maiorano",
    "email": "amaiorano@google.com",
    "time": "Wed Jul 22 20:34:04 2020 +0000"
  },
  "message": "Fix ReactorDebugInfo off by one line issues\n\nBefore this commit, when debugging with the ReactorDebugInfo feature,\nvariables were being incorrectly displayed in the debugger. For\ninstance, given:\n\nInt a \u003d 1;\nInt b \u003d 2;\n\nThe debugger would not display \u0027a\u0027, and would display \u0027b\u0027 as containing\nthe value \u00271\u0027. The reason for this was that while the Int constructor\nfor \u0027a\u0027 was executing, we invoke boost::stacktrace() to determine the\nvariable\u0027s source location (file and line number); however, the stack\ntrace would return the return address of the constructor call, which\nwould be on the next line -- that of \u0027Int b\u0027.\n\nTo fix this, knowing that all ReactorDebugInfo emits come from function\ncalls in Reactor code, we assume that all backtrace addresses point to\nthe next instruction following the call, thus we subtract 1 from these\naddresses. When resolving the file and line number, this gets back the\nprevious instruction\u0027s location. There are likely corner cases where\nthis doesn\u0027t work, but it\u0027s better than what we have now.\n\nBug: b/161821289\nChange-Id: Ie92ead393f321fc1a26fc019d6450bfddb7a5e24\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/46868\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nKokoro-Result: kokoro \u003cnoreply+kokoro@google.com\u003e\nTested-by: Antonio Maiorano \u003camaiorano@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60d3f8dd07cda13dbd665e15ccb31fbb4812bb58",
      "old_mode": 33188,
      "old_path": "src/Reactor/ReactorDebugInfo.cpp",
      "new_id": "18849998e0a60f0bc6de1685b332a97ed8836706",
      "new_mode": 33188,
      "new_path": "src/Reactor/ReactorDebugInfo.cpp"
    }
  ]
}
