- Oct 03, 2011
-
-
Johnny Chen authored
llvm-svn: 141033
-
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
llvm-svn: 140922
-
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
-
Greg Clayton authored
llvm-svn: 140893
-
- Sep 30, 2011
-
-
Johnny Chen authored
Add a keyword argument 'endstr' to TestBase.expect() method to assert that the output will end with 'endstr'. Add TestBase.switch_to_thread_with_stop_reason(stop_reason) to select the thread with the stop reason = 'stop_reason' as the current thread. o TestWatchLocation.py: Modified to switch to the stopped thread with stop reason = watchpoint and to evaluate an expression with expected output for stronger assertion. llvm-svn: 140890
-
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
-
Johnny Chen authored
llvm-svn: 140833
-
Johnny Chen authored
llvm-svn: 140832
-
Johnny Chen authored
from lldbutil.py to the lldb.py proper. The in_range() function becomes a function in the lldb module. And the symbol_iter() function becomes a method within the SBModule called symbol_in_section_iter(). Example: # Iterates the text section and prints each symbols within each sub-section. for subsec in text_sec: print INDENT + repr(subsec) for sym in exe_module.symbol_in_section_iter(subsec): print INDENT2 + repr(sym) print INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType()) might produce this following output: [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870) symbol type: code id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0) symbol type: code id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c) symbol type: code id = {0x00000023}, name = 'start', address = 0x0000000100001780 symbol type: code [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62) symbol type: trampoline id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68) symbol type: trampoline id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e) symbol type: trampoline id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74) symbol type: trampoline id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a) symbol type: trampoline id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80) symbol type: trampoline id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86) symbol type: trampoline id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c) symbol type: trampoline id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92) symbol type: trampoline id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98) symbol type: trampoline id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e) symbol type: trampoline id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4) symbol type: trampoline [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame llvm-svn: 140830
-
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
-
-
Johnny Chen authored
the watchpoint state is changed, not only does the change propagate to all the thread instances, it also updates a global debug state, if chosen by the DNBArchProtocol derivative. Once implemented, the DNBArchProtocol derivative, also makes sure that when new thread comes along, it tries to inherit from the global debug state, if it is valid. Modify TestWatchpointMultipleThreads.py to test this functionality. llvm-svn: 140811
-
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
-
Johnny Chen authored
it enables the hardware watchpoint for all existing threads. Add a test file for that. Also fix MachThreadList::DisableHardwareWatchpoint(). llvm-svn: 140757
-
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
-
Johnny Chen authored
end address is an LLDB_INVALID_ADDRESS. Modify the test case to dump all the symbols in all the sections. llvm-svn: 140710
-
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
-
Johnny Chen authored
Add the relevant utility functions to the lldbutil.py file. llvm-svn: 140669
-
Jim Ingham authored
llvm-svn: 140662
-
Johnny Chen authored
In particular, it iterates through the executable module's SBSections, looking for the '__TEXT' section and further iterates on its subsections (of SBSection type, too). llvm-svn: 140654
-
- Sep 27, 2011
-
-
Johnny Chen authored
llvm-svn: 140640
-
Johnny Chen authored
Modify get_description() utility function in lldbutil.py to handle that. llvm-svn: 140638
-
Johnny Chen authored
Also add rich comparison methods (__eq__ and __ne__) for SBWatchpointLocation. Modify TestWatchpointLocationIter.py to exercise the new APIs. Add fuzz testings for the recently added SBTarget APIs related to watchpoint manipulations. llvm-svn: 140633
-