[Lldb-commits] [PATCH] D12556: Introduce new address class eAddressClassDataIntermixedCode

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 2 11:35:19 PDT 2015

clayborg added a comment.

I would leave everything as is (no eAddressClassDataIntermixedCode), but I would change the code to use:

  target->GetOpcodeLoadAddress (return_load_addr, eAddressClassCode);

We don't need to lookup the address class type when determining return addresses. Then this should just work.

The main reason I don't want stuff changing by adding eAddressClassDataIntermixedCode is if we are single stepping over 0x1000:

  0x1000: bx <addr> Non-tail call in a no return function
  0x1004: [data-pool] Marked with $d mapping symbol

We might set a breakpoint at 0x1004, but if we determine that 0x1004 is data, we won't set a breakpoint there... So there are cases where we want to know the truth about address 1004. But in the case of the LR or any return address, we need to just assume it is a code address instead of figuring out what it actually is.


More information about the lldb-commits mailing list