Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Presumably, this should change how unwind plans are computed. The unwind machinery will treat a mov %sp, %fp(whatever is the arm equivalent) as a signal that it should switch to an frame-pointer based unwind. This logic should not kick in if lldb does not think this register is the frame pointer register. You should be able to check this via image show-unwind. If that shows some difference then it should be possible to concoct a function where the unwind goes wrong because of this, but that's not necessary -- it should be enough to just check that a reasonable unwind plan is generated.
Added a testcase using a minidump. I had to add recognition of r11 as a potential frame pointer register in thumb mode in the handling of one instruction, to make it pick up the exact form my testcase happened to use. There's potentially other cases also where the thumb emulation doesn't expect r11 to be a frame pointer, but this at least verifies the change to GetFramePointerRegisterNumber.