- Jul 26, 2011
-
-
Johnny Chen authored
too complex in the test case. We can just simply test that the SBValue object is a valid object and it does not correspond to a null pointer in order to say that EOL has not been reached. Modify the test case and the lldb.py docstring to have a more compact test function. llvm-svn: 136123
-
Johnny Chen authored
to be included from lldb.swig: python-typemaps.swig and python-wrapper.swig. llvm-svn: 136117
-
Johnny Chen authored
llvm-svn: 136016
-
Johnny Chen authored
for child in value: # do something with the child value and SBValue.linked_list_iter(): for task in task_head.linked_list_iter('next', eol_test): # visit each item in the linked list llvm-svn: 136015
-
- Jul 25, 2011
-
-
Johnny Chen authored
to iterate through an SBValue instance by treating it as the head of a linked list. API program must provide two args to the linked_list_iter() method: the first being the child member name which points to the next item on the list and the second being a Python function which an SBValue (for the next item) and returns True if end of list is reached, otherwise it returns False. For example, suppose we have the following sample program. #include <stdio.h> class Task { public: int id; Task *next; Task(int i, Task *n): id(i), next(n) {} }; int main (int argc, char const *argv[]) { Task *task_head = new Task(-1, NULL); Task *task1 = new Task(1, NULL); Task *task2 = new Task(2, NULL); Task *task3 = new Task(3, NULL); // Orphaned. Task *task4 = new Task(4, NULL); Task *task5 = new Task(5, NULL); task_head->next = task1; task1->next = task2; task2->next = task4; task4->next = task5; int total = 0; // Break at this line Task *t = task_head; while (t != NULL) { if (t->id >= 0) ++total; t = t->next; } printf("We have a total number of %d tasks\n", total); return 0; } The test program produces the following output while exercising the linked_list_iter() SBVAlue API: task_head: TypeName -> Task * ByteSize -> 8 NumChildren -> 2 Value -> 0x0000000106400380 ValueType -> local_variable Summary -> None IsPointerType -> True Location -> 0x00007fff65f06e60 (Task *) next = 0x0000000106400390 (int) id = 1 (Task *) next = 0x00000001064003a0 (Task *) next = 0x00000001064003a0 (int) id = 2 (Task *) next = 0x00000001064003c0 (Task *) next = 0x00000001064003c0 (int) id = 4 (Task *) next = 0x00000001064003d0 (Task *) next = 0x00000001064003d0 (int) id = 5 (Task *) next = 0x0000000000000000 llvm-svn: 135938
-
- Jul 22, 2011
-
-
Greg Clayton authored
API. SBTarget changes include changing: bool SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr, lldb::SBAddress& addr); to be: lldb::SBAddress SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr); SBAddress can how contruct itself using a load address and a target which can be used to resolve the address: SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This will actually just call the new SetLoadAddress accessor: void SetLoadAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This function will always succeed in making a SBAddress object that can be used in API calls (even if "target" isn't valid). If "target" is valid and there are sections currently loaded, then it will resolve the address to a section offset address if it can. Else an address with a NULL section and an offset that is the "load_addr" that was passed in. We do this because a load address might be from the heap or stack. llvm-svn: 135770
-
- Jul 21, 2011
-
-
Johnny Chen authored
llvm-svn: 135648
-
Johnny Chen authored
llvm-svn: 135647
-
Johnny Chen authored
llvm-svn: 135642
-
Johnny Chen authored
llvm-svn: 135631
-
Johnny Chen authored
llvm-svn: 135630
-
- Jul 20, 2011
-
-
Johnny Chen authored
llvm-svn: 135553
-
Johnny Chen authored
llvm-svn: 135547
-
Johnny Chen authored
llvm-svn: 135539
-
Johnny Chen authored
llvm-svn: 135536
-
Johnny Chen authored
They are not docstring'ed yet. llvm-svn: 135531
-
- Jul 19, 2011
-
-
Johnny Chen authored
llvm-svn: 135459
-
Johnny Chen authored
llvm-svn: 135441
-
Johnny Chen authored
llvm-svn: 135436
-
Johnny Chen authored
llvm-svn: 135432
-
- Jul 18, 2011
-
-
Johnny Chen authored
llvm-svn: 135430
-
Johnny Chen authored
llvm-svn: 135419
-
Johnny Chen authored
llvm-svn: 135417
-
Johnny Chen authored
Add two new interface files SBValue.i and SBValueList.i, instead of directly swigging the header files. llvm-svn: 135416
-
Johnny Chen authored
llvm-svn: 135405
-
- Jul 16, 2011
-
-
Johnny Chen authored
llvm-svn: 135357
-
Johnny Chen authored
of the duty of having SWIG docstring features and multiline string literals embedded within. lldb.swig now %include .../SBTarget.i, instead of .../SBTarget.h. Will create other interface files and transition them over. Also update modify-python-lldb.py to better handle the trailing blank line right before the ending '"""' Python docstring delimiter. llvm-svn: 135355
-
- Jul 15, 2011
-
-
Johnny Chen authored
Add some more docstrings for SBCompileUnit and SBBreakpoint, plus incorporate the doxgen doc block of SBValue::GetChildAtIndex(uint32_t idx, lldb::DynamicValueType use_dynamic, bool can_create_synthetic); into the SBValue docstrings. llvm-svn: 135295
-
- Jul 14, 2011
-
-
Johnny Chen authored
Add logic to modify-python-lldb to correct swig's transformation of 'char **argv' and 'char **envp' to 'char argv' and 'char envp' by morphing them into the 'list argv' and 'list envp' (as a list of Python strings). llvm-svn: 135114
-
- Jul 09, 2011
-
-
Johnny Chen authored
llvm-svn: 134775
-
- Jul 06, 2011
-
-
Johnny Chen authored
Add post-processing step to transform the docstring from 'char', i.e., 'char *', to 'str', i.e., Python string. llvm-svn: 134543
-
- Jul 03, 2011
-
-
Johnny Chen authored
generated from the swig docstring features instead of blindly applying the cleanup action for all input lines. llvm-svn: 134368
-
Johnny Chen authored
Add post-processing step to remove the trailing blank lines from the docstrings of lldb.py. llvm-svn: 134360
-
- Jul 02, 2011
-
-
Johnny Chen authored
llvm-svn: 134326
-
Johnny Chen authored
take advantage of them. Update modify-python-lldb.py to remove some 'residues' resulting from swigification. llvm-svn: 134269
-
- Jun 14, 2011
-
-
Peter Collingbourne authored
Previously the IsValid pattern matched only function signatures of the form: def IsValid(*args): ... However under SWIG 1.3.40 on Linux the signature reads: def IsValid(self): ... The new pattern matches both signature types by matching only up to the left paren. llvm-svn: 132968
-
- Jun 10, 2011
-
-
Johnny Chen authored
If two SBAddress's have the same module and file address, they are considered equal. Add a test snippet 'sa1 == sa2' to exercise the rich comparison methods for SBAddress. llvm-svn: 132807
-
- Jun 01, 2011
-
-
Johnny Chen authored
the SWIG-generated lldb.py module by adding comments in the post-processed file in order to facilitate reading of the code. llvm-svn: 132417
-
Johnny Chen authored
llvm-svn: 132412
-
Charles Davis authored
- The Swig post-processing scripts are now run. - edit-swig-python-wrapper-file.py has been modified so it can be run from the Makefile. - The issue that prompted me to pass -classic to swig is fixed by this, so -classic isn't passed anymore. Python shouldn't complain anymore about a missing method 'FindDebuggerByID' on the SBDebugger object whenever lldb is run. llvm-svn: 132383
-