)]}'
{
  "commit": "8b73ee207c9c4b2d692a82a29d1cee2dcfa07394",
  "tree": "4d94dc21d243832f79e81720609950c0ea773d9b",
  "parents": [
    "99033a63c7ba0997ef737392eef15337d6783078"
  ],
  "author": {
    "name": "Luis Machado",
    "email": "luis.machado@arm.com",
    "time": "Wed Oct 26 12:59:13 2022 +0100"
  },
  "committer": {
    "name": "Luis Machado",
    "email": "luis.machado@arm.com",
    "time": "Wed Oct 26 12:59:13 2022 +0100"
  },
  "message": "gdb/arm: Terminate frame unwinding in M-profile lockup\n\nIn the lockup state the PC value of the the outer frame is irreversibly\nlost. The other registers are intact so LR likely contains\nPC of some frame next to the outer one, but we cannot analyze\nthe nearest outer frame without knowing its PC\ntherefore we do not know SP fixup for this frame.\n\nThe frame unwinder possibly gets mad due to the wrong SP value.\nTo prevent problems terminate unwinding if PC contains the magic\nvalue of the lockup state.\n\nExample session wihtout this change,\nCortex-M33 CPU in lockup, gdb 13.0.50.20221016-git:\n----------------\n  (gdb) c\n  Continuing.\n\n  Program received signal SIGINT, Interrupt.\n  0xeffffffe in ?? ()\n  (gdb) bt\n  #0  0xeffffffe in ?? ()\n  #1  0x0c000a9c in HardFault_Handler ()\n      at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/stm32l5xx_it.c:99\n  #2  0x2002ffd8 in ?? ()\n  Backtrace stopped: previous frame identical to this frame (corrupt stack?)\n  (gdb)\n----------------\nThe frame #1 is at correct PC taken from LR, #2 is a total nonsense.\n\nWith the change:\n----------------\n  (gdb) c\n  Continuing.\n\n  Program received signal SIGINT, Interrupt.\n  warning: ARM M in lockup state, stack unwinding terminated.\n  \u003csignal handler called\u003e\n  (gdb) bt\n  #0  \u003csignal handler called\u003e\n  (gdb)\n----------------\n\nThere is a visible drawback of emitting a warning in a cache buildnig routine\nas introduced in Torbjörn SVENSSON\u0027s\n[PATCH v4] gdb/arm: Stop unwinding on error, but do not assert\nThe warning is printed just once and not repeated on each backtrace command.\n\nSigned-off-by: Tomas Vanek \u003cvanekt@fbl.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2af6aa1eff15a81848d469a6a728332236d0e304",
      "old_mode": 33188,
      "old_path": "gdb/arm-tdep.c",
      "new_id": "ae0882f9c4a1f5ed9dd71b0c3686ed0b5e2c4de1",
      "new_mode": 33188,
      "new_path": "gdb/arm-tdep.c"
    }
  ]
}
