[Lldb-commits] [PATCH] Initial Assembly profiler for mips64

Jason Molenda jmolenda at apple.com
Wed Feb 18 20:46:02 PST 2015


For what it's worth, an example of a test file for this code would be a driver program written in C for simplicity which calls under1() written in assembly, which in turn calls under2().  lldb would stop in under2(), go up the stack to under1() and try to print a register that was preserved.

Some utterly invalid syntax for a test file would look like:

int main()
 {

  under1();

}

.asm("
under1:

  mov r16, 1
  call under2

under2:

  sd r16(sp)       # I have no idea if that is right -- save contents of r16 on the local stack frame
  mov r16, 5
  call puts          ## whatever, stop at a breakpoint here

");

If lldb could select frame 1 and see that r16 has the value 1, that's a simple test case.

But this test could only be run on a mips64 system.

I want to add test cases like this for x86 but it might take some fiddling to get assembly that would work on all the Unix x86 systems at least (nevermind Windows! ;) and I've never gotten around to it.  I should start with at least simple x86 unwinder test cases that work correctly on Mac as a step 0.


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D7696

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the lldb-commits mailing list