llvm-project/lldb/source
Jason Molenda 91e428bc90 Revert one part of Ashok Thirumurthi's patch from September 16, r190812.
In those set of patches, Ashok changed Module::ResolveSymbolContextForAddress 
so that if it failed to find a symbol for a pc, it could back up
the pc value by 1 and re-search for a symbol.

His change to RegisterContextLLDB.cpp partially duplicates that
behavior but it also removes the separate case where we find a
Symbol for the pc address but it's the wrong symbol -- we need to
handle this as well as the lookup-by-pc-finds-no-symbol case.

The most obvious fallout from this regression was that lldb on
Mac OS X couldn't backtrace past __assert_rtn() which tail-calls 
abort().  e.g.

(lldb) bt
* thread #1: tid = 0x5d6ea1, 0x00007fff8ee80866 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff8ee80866 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff8eb5835c libsystem_pthread.dylib`pthread_kill + 92
    frame #2: 0x00007fff8852ab1a libsystem_c.dylib`abort + 125
    frame #3: 0x00007fff884f49bf libsystem_c.dylib`__assert_rtn + 321
    frame #4: 0x0000000100000f2c a.out`main + 124

(lldb) dis -c 3 -s 0x7fff884f49b3
libsystem_c.dylib`__assert_rtn + 309:
   0x7fff884f49b3:  movq   %rax, -0x11b96242(%rip)   ; gCRAnnotations + 8
   0x7fff884f49ba:  callq  0x7fff8854fd2c            ; symbol stub for: abort

libsystem_c.dylib`basename:
   0x7fff884f49bf:  pushq  %rbp
(lldb) 

in this case, __assert_rtn() is immediately followed by basename() and 
the changes in r190812 didn't back up the pc value to get the correct
function name / unwind info.

<rdar://problem/15367233> 

llvm-svn: 197655
2013-12-19 04:32:42 +00:00
..
API Fix how Queue/QueueItem weak pointers are initialized in the ctors. 2013-12-18 00:58:23 +00:00
Breakpoint For logical backtrace work, lldb needs to track Module unloads etc & symoblicate an address based on a point in time 2013-12-06 01:12:00 +00:00
Commands Centralized the launching of a process into Target::Launch() 2013-12-13 17:20:18 +00:00
Core Pickup fixes for demangling crashers. 2013-12-12 17:39:39 +00:00
DataFormatters <rdar://problem/15530080> 2013-11-22 00:02:13 +00:00
Expression Fix the test suite after the changes made in revision 196616 exposed issues in the test suite. 2013-12-10 23:16:40 +00:00
Host <rdar://problem/15639995> 2013-12-19 00:35:40 +00:00
Interpreter Fix autocompletion for multi-word commands. 2013-12-10 19:14:04 +00:00
Plugins Revert one part of Ashok Thirumurthi's patch from September 16, r190812. 2013-12-19 04:32:42 +00:00
Symbol Fix log message for new invalidation checks in PlanValidAtAddress(). 2013-12-03 21:59:39 +00:00
Target Fix std::string initialization in Queue ctor. 2013-12-19 00:09:13 +00:00
Utility Extends StringExtractorGDBRemote to support debugger packets. 2013-12-05 19:25:45 +00:00
CMakeLists.txt Improve the set of the Python libraries during the cmake build. 2013-11-15 14:15:10 +00:00
Makefile Remove LLDB dependency on xcodeworkspace (on Linux) for version number 2013-02-28 16:51:15 +00:00
lldb-log.cpp The output of 'log list' was missing a few of the lldb channels: 2013-09-12 01:48:59 +00:00
lldb.cpp Commit a work-in-progress system runtime for Mac OS X which won't 2013-11-15 00:17:32 +00:00