llvm-project/lldb/source/Symbol
Todd Fiala 0562524b45 On x86 & x86_64, try to use eh_frame for frame 0.
We decided to use assmbly profiler instead of eh_frame for frame 0 because for compiler generated code, eh_frame is usually synchronous(a.k.a. only valid at call site); and we have no way to tell if it's asynchronous or not.
But for x86 & x86_64 compiler generated code:
1. clang & GCC describes all prologue instructions in eh_frame;
2. mid-function stack pointer altering instructions can be easily detected.
So we can grab eh_frame, and use assembly profiler to augment it into asynchronous unwind table.
This change also benefits hand-written assembly; eh_frame for hand-written assembly is often asynchronous,so we have a much better chance to successfully unwind through them.

Change by Tong Shen.

llvm-svn: 216406
2014-08-25 20:29:09 +00:00
..
Block.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
CMakeLists.txt Convert to UNIX line endings. 2013-09-25 10:37:32 +00:00
ClangASTContext.cpp This is a fairly bulky patch, but a lot of it involves rearranging existing code 2014-08-19 21:46:37 +00:00
ClangASTImporter.cpp Fixed a problem in the Clang AST importer where 2014-08-01 22:42:38 +00:00
ClangASTType.cpp Revert a part of r214335 that I didn't mean to commit 2014-07-30 21:10:03 +00:00
ClangExternalASTSourceCallbacks.cpp Fix typos. 2014-07-01 21:22:11 +00:00
ClangExternalASTSourceCommon.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
ClangNamespaceDecl.cpp Added a packet history object to the GDBRemoteCommunication class that is always remembering the last 512 packets that were sent/received. These packets get dumped if logging gets enabled, or when the new expr lldb::DumpProcessGDBRemotePacketHistory (void *process, const char *log_file_path) global function is called. 2012-04-09 22:46:21 +00:00
CompileUnit.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
DWARFCallFrameInfo.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
Declaration.cpp
FuncUnwinders.cpp On x86 & x86_64, try to use eh_frame for frame 0. 2014-08-25 20:29:09 +00:00
Function.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
LineEntry.cpp DWARF says line number 0 is a valid line number - used to indicate a source line that should 2013-09-27 01:15:46 +00:00
LineTable.cpp Don't allow multiple line entries with the same address to exist sequentially. 2014-06-18 19:55:34 +00:00
Makefile
ObjectFile.cpp Start converting usages of off_t to other types. 2014-07-02 17:24:07 +00:00
Symbol.cpp Fixed the Symbol code to resolve the callable address 2014-05-23 02:30:48 +00:00
SymbolContext.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
SymbolFile.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
SymbolVendor.cpp When adding a dSYM to an existing ObjectFile, we can have a situation 2014-08-22 02:46:46 +00:00
Symtab.cpp When adding a dSYM to an existing ObjectFile, we can have a situation 2014-08-22 02:46:46 +00:00
Type.cpp Don't crash when a SBType is handed out through the API and later used after the module that owns the type is deleted. 2014-07-11 22:43:15 +00:00
TypeList.cpp cleanup unreferenced functions 2014-03-20 06:08:36 +00:00
UnwindPlan.cpp On x86 & x86_64, try to use eh_frame for frame 0. 2014-08-25 20:29:09 +00:00
UnwindTable.cpp Add a lock in the UnwindTable class so two Targets won't try 2014-06-18 23:32:53 +00:00
Variable.cpp Switch NULL to C++11 nullptr in source/Symbol and source/Utility 2014-04-20 13:17:36 +00:00
VariableList.cpp Restore the ability of SBFrame::FindValue() to look for file global variables 2014-02-19 19:35:13 +00:00
VerifyDecl.cpp