OSDN Git Service

1. Fix CFI for quick compiled code in x86 & x86_64;
authorTong Shen <endlessroad@google.com>
Wed, 30 Jul 2014 16:31:22 +0000 (09:31 -0700)
committerTong Shen <endlessroad@google.com>
Wed, 30 Jul 2014 20:19:26 +0000 (20:19 +0000)
commit35e1e6ad4b50f1adbe9f93fe467766f042491896
tree054e8fe1140fc1144ececa8ad8beda18be9566a2
parent01a0ebb6b96c32879dcad99d515fc0cd8de2a266
1. Fix CFI for quick compiled code in x86 & x86_64;
2. Emit CFI in .eh_frame instead of .debug_frame.

With CFI, we can correctly unwind past quick generated code.
Now gdb should unwind to main() for both x86 & x86_64 host-side ART.

Note that it does not work with relocation yet.

Testing:
1. art/test/run-test --host --gdb [--64] --no-relocate 005
2. In gdb, run 'b art_quick_invoke_stub', then 'r', then 'c' a few times
3. In gdb, run 'bt'. You should see stack frames down to main()

Change-Id: I5350d4097dc3d360a60cb17c94f1d02b99bc58bb
compiler/compilers.cc
compiler/dex/quick/x86/codegen_x86.h
compiler/dex/quick/x86/target_x86.cc
compiler/elf_writer_quick.cc
compiler/oat_writer.cc
runtime/arch/x86/quick_entrypoints_x86.S
runtime/elf_file.cc