- Oct 07, 2011
-
-
Greg Clayton authored
llvm-svn: 141387
-
Greg Clayton authored
Re-organized the contents of RangeMap.h to be more concise and also allow for a Range, RangeArray, RangeData (range + data), or a RangeDataArray. We have many range implementations in LLDB and I will be converting over to using the classes in RangeMap.h so we can have one set of code that does ranges and searching of ranges. Fixed up DWARFDebugAranges to use the new range classes. Fixed the enumeration parsing to take a lldb_private::Error to avoid a lot of duplicated code. Now when an invalid enumeration is supplied, an error will be returned and that error will contain a list of the valid enumeration values. llvm-svn: 141382
-
Greg Clayton authored
Since we use address ranges a lot I added a templatized class that allows us to easily control the base address type, the size type, and the data that is stored with each range. It is designed to be populated by appending all needed items, then sorting the resulting list, and optionally minimizing the list when done. I adopted this new list in the DWARFDebugAranges for even further memory savings. llvm-svn: 141352
-
rdar://problem/10226227Greg Clayton authored
Fixed the root cause of what was causing an assertion to fire during single stepping. We had an issue with the inlined stack frames where when we had inlined frames that were not in the first concrete frame where we passed the wrong PC down. We needed to decrement the PC by one for these frames to make sure we are using the same address that did the symbol context lookup. llvm-svn: 141349
-
Greg Clayton authored
llvm-svn: 141348
-
rdar://problem/10226227Greg Clayton authored
Fixed an assertion that was causing a crash. The bug describes a case where we have an inlined block that doesn't contain the frame PC that was used to lookup the symbol context in the first place. This really shouldn't happen, so now we log if we run into this and don't assert. llvm-svn: 141338
-
- Oct 06, 2011
-
-
Johnny Chen authored
llvm-svn: 141307
-
Jason Molenda authored
set up yet, if we're talking to an Apple arm device set the register set based on the arm device's attributes; this is a safe assumption to make in this particular environment. llvm-svn: 141265
-
Greg Clayton authored
(lldb) log enable dwarf lookups This allows us to see when lookups are being done on functions, addresses, and types by both name and regular expresssion. llvm-svn: 141259
-
Greg Clayton authored
Stop spurious "DW_AT_specification(0x%8.8x) has no decl" warnings that were due to not parsing the function types when the function blocks are made and parsed. Cached the Function object's m_type value after it has been calculated. llvm-svn: 141225
-
Greg Clayton authored
"const char *" is NULL. Also cleaned up the display of strings when you have an array of chars that are all NULL. Previously we were showing: ""... We now show: "" llvm-svn: 141223
-
Greg Clayton authored
and statics when no arguments are given. llvm-svn: 141222
-
- Oct 05, 2011
-
-
Johnny Chen authored
watchpoint ignore -i <count> [<watchpt-id | watchpt-id-list>] Add tests of watchpoint ignore_count for command line as well as API. llvm-svn: 141217
-
Greg Clayton authored
using the mutex. llvm-svn: 141160
-
Johnny Chen authored
when newly created threads were subsequently stopped due to breakpoint hit. The stop-hook mechanism delegates to CommandInterpreter::HandleCommands() to execuet the commands. Make sure the execution context is switched only once at the beginning of HandleCommands() only and don't update the context while looping on each individual command to be executed. rdar://problem/10228156 llvm-svn: 141144
-
Greg Clayton authored
index the DWARF. Also fixed an issue with memory accelerator tables with a size of 1 where we would loop infinitely. Added support for parsing the new .apple_namespaces section which gives us a memory hash table for looking up namespaces. llvm-svn: 141128
-
- Oct 03, 2011
-
-
Johnny Chen authored
llvm-svn: 141021
-
- Oct 01, 2011
-
-
Greg Clayton authored
and this implemenation that backs our lldb::SBSourceManager should not be exported. llvm-svn: 140930
-
Greg Clayton authored
not saying that its children are load addresses. llvm-svn: 140921
-
Greg Clayton authored
DWARF errors and warnings. llvm-svn: 140918
-
Jason Molenda authored
an anonymous struct type (which lacks any name). llvm-svn: 140917
-
Johnny Chen authored
a variable usng the frame as the scope. Add TestSetWatchpoint.py to exercise this API. Also fix some SWIG Python docstrings. llvm-svn: 140914
-
Greg Clayton authored
symbol context that represents an inlined function. This function has been renamed internally to: bool SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc, SymbolContext &next_frame_sc, Address &next_frame_pc) const; And externally to: SBSymbolContext SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc, SBAddress &parent_frame_addr) const; The correct blocks are now correctly calculated. Switched the stack backtracing engine (in StackFrameList) and the address context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...) so all inlined callstacks will match exactly. llvm-svn: 140910
-
Jason Molenda authored
llvm-svn: 140901
-
- Sep 30, 2011
-
-
Greg Clayton authored
Also reduce the size of the lldb_private::Symbol objects by removing the lldb_private::Function pointer that was in each symbol. Running Instruments has shown that when debugging large applications with DWARF in .o files that lldb_private::Symbol objects are one of the highest users of memory. No one was using the Symbol::GetFunction() call anyway. llvm-svn: 140881
-
Greg Clayton authored
llvm-svn: 140845
-
Greg Clayton authored
llvm-svn: 140843
-
rdar://problem/10212450Greg Clayton authored
Don't parse function types all the time, only parse them lazily. llvm-svn: 140842
-
Johnny Chen authored
watch the location pointed to by the variable. An example, (lldb) frame variable -w write -x 1 -g g_char_ptr (char *) g_char_ptr = 0x0000000100100860 ""... Watchpoint created: WatchpointLocation 1: addr = 0x100100860 size = 1 state = enabled type = w declare @ '/Volumes/data/lldb/svn/trunk/test/functionalities/watchpoint/hello_watchlocation/main.cpp:21' ... (lldb) c Process 3936 resuming ... rocess 3936 stopped * thread #2: tid = 0x3403, 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27, stop reason = watchpoint 1 frame #0: 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27 24 do_bad_thing_with_location(char *char_ptr, char new_val) 25 { 26 *char_ptr = new_val; -> 27 } 28 29 uint32_t access_pool (uint32_t flag = 0); 30 (lldb) Also add TestWatchLocation.py test to exercise this functionality. llvm-svn: 140836
-
Jim Ingham authored
llvm-svn: 140835
-
Greg Clayton authored
information generated for it. Say we have a concrete function "foo" which has inlined function "a" which calls another inlined function "b": foo 1 { 2 { a () 3 { b () 4 { } } } } Sometimes we see the compiler generate an address range in the DWARF for "foo" (block 1 above) as say [0x1000-0x1100). Then the range for "a" is something like [0x1050-0x1060) (note that it is correctly scoped within the "foo" address range). And then we get "b" which is a child of "a", yet the debug info says it has a range of [0x1060-0x1080) (not contained within "a"). We now detect this issue when making our blocks and add an extra range to "a". Also added a new "lldb" logging category named "symbol" where we can find out about symbol file errors and warnings. llvm-svn: 140822
-
Jason Molenda authored
if no frame is specified. This is useful to get the source context lines re-displayed when you need a reminder of where you are in the source currently. llvm-svn: 140819
-
Jason Molenda authored
llvm-svn: 140817
-
Jim Ingham authored
Centralize the warning reporting and use ReportWarning & ReportError everywhere we were using fprintf(stderr directly. llvm-svn: 140813
-
- Sep 29, 2011
-
-
Greg Clayton authored
The old way of storing blocks used to use the sibling pointer, but now all blocks contain a collection of shared pointers to blocks so this isn't required anymore and a parent can be asked to find the sibling block for a child block. llvm-svn: 140808
-
Jim Ingham authored
llvm-svn: 140804
-
Greg Clayton authored
are available, we currently will still index the DWARF ourselves and assert if the name lookups differ. This will help us transition to the new accelerator tables and make sure they are workng before we switch over entirely. llvm-svn: 140788
-
Greg Clayton authored
up the implementation details of the on disk hash, these changed implement the changes in the on disk table format. llvm-svn: 140750
-
- Sep 28, 2011
-
-
Johnny Chen authored
llvm-svn: 140714
-
Greg Clayton authored
hash tables. Renamed the DWARF sections to ".apple_names" and ".apple_types" until we get more buy in from other vendors. llvm-svn: 140702
-