summaryrefslogtreecommitdiffstats
path: root/lldb/scripts
Commit message (Collapse)AuthorAgeFilesLines
* The SBValue.linked_list_iter() API failed for an empty list.Johnny Chen2011-07-271-3/+1
| | | | | | Fix the bug and add a test case. llvm-svn: 136265
* Add docstrings and cross refs to SBCompileUnit and SBLineEntry.Johnny Chen2011-07-272-3/+33
| | | | llvm-svn: 136230
* Add cross reference to SBThread from the SBFrame docstring. Also add a ↵Johnny Chen2011-07-271-1/+7
| | | | | | simple iteration example. llvm-svn: 136227
* Add deprecation docstrings for some APIs which take an SBFrame - SBValues ↵Johnny Chen2011-07-271-7/+18
| | | | | | know their own frames. llvm-svn: 136194
* Fix indentation and add a docstring for the ctor.Johnny Chen2011-07-261-4/+6
| | | | llvm-svn: 136187
* adding required utility function to SWIG interfaceEnrico Granata2011-07-261-0/+43
| | | | llvm-svn: 136147
* We can do better with the SBValue.linked_list_iter() API by supplying a defaultJohnny Chen2011-07-261-12/+16
| | | | | | | | | | | | | | end of list test function as __eol_test__. The simple example can be reduced to: for t in task_head.linked_list_iter('next'): print t Modify the test program to exercise the API for both cases: supplying or not supplying an end of list test function. llvm-svn: 136144
* The test function to determine whether we have reached the end of the list wasJohnny Chen2011-07-261-14/+7
| | | | | | | | | | | 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
* lldb.swig (the SWIG input file) has become too large. Modularize a bit by ↵Johnny Chen2011-07-263-639/+639
| | | | | | | | introducing two files to be included from lldb.swig: python-typemaps.swig and python-wrapper.swig. llvm-svn: 136117
* Rename the parameter for the end-of-list test function from end_of_list to ↵Johnny Chen2011-07-251-2/+2
| | | | | | end_of_list_test. llvm-svn: 136016
* Add cross references between the docstrings for regular SBValue iteration:Johnny Chen2011-07-252-6/+16
| | | | | | | | | | | | 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
* Provide an add-on API to SBValue class by post-processing to provide a wayJohnny Chen2011-07-251-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Python synthetic children:Enrico Granata2011-07-241-2/+273
| | | | | | | | | | | | | | - you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference llvm-svn: 135865
* Make the SBAddress class easier to use when using the publicGreg Clayton2011-07-222-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Change docstring wording: from 'method' to 'function'.Johnny Chen2011-07-211-1/+1
| | | | llvm-svn: 135648
* Add docstring for SBInstructionList class.Johnny Chen2011-07-211-0/+14
| | | | llvm-svn: 135647
* Add docstring for SBCommandReturnObject class.Johnny Chen2011-07-211-0/+7
| | | | llvm-svn: 135642
* Add docstring for SBCommandInterpreter class.Johnny Chen2011-07-201-0/+44
| | | | llvm-svn: 135631
* Add docstring for SBBroadcaster class.Johnny Chen2011-07-201-0/+11
| | | | llvm-svn: 135630
* Add some docstrings for SBFileSpec class.Johnny Chen2011-07-201-0/+21
| | | | llvm-svn: 135553
* Add some docstrings for SBError class.Johnny Chen2011-07-201-0/+47
| | | | llvm-svn: 135547
* Add some docstrings for SBSourceManager class.Johnny Chen2011-07-191-0/+26
| | | | llvm-svn: 135539
* Add some docstrings for SBStream class.Johnny Chen2011-07-191-8/+47
| | | | llvm-svn: 135536
* Move the rest of the SB headers to interface files.Johnny Chen2011-07-1915-15/+830
| | | | | | They are not docstring'ed yet. llvm-svn: 135531
* Rearrange the %include SWIG directives into two groups. One is the pure .h ↵Johnny Chen2011-07-191-13/+17
| | | | | | | | headers and the other is the .i interface files. The objective is to move the .h header into .i interface file eventually. llvm-svn: 135526
* Add SWIG interface files for SBSymbol, SBSymbolContext, and SBSymbolContextList.Johnny Chen2011-07-195-4/+215
| | | | llvm-svn: 135459
* Add SWIG Python interface files for SBLineEntry, SBListener, and SBModule.Johnny Chen2011-07-185-5/+316
| | | | llvm-svn: 135441
* Missed the interface file for SBFunction in the previous checkin.Johnny Chen2011-07-181-0/+81
| | | | llvm-svn: 135436
* Add SWIG Python interface files for SBDebugger, SBCompileUnit, and SBEvent.Johnny Chen2011-07-184-4/+534
| | | | llvm-svn: 135432
* Add SWIG Python interface files for SBAddress, SBBlock, SBBreakpoint, and ↵Johnny Chen2011-07-185-4/+428
| | | | | | SBBreakpointLocation. llvm-svn: 135430
* Add SWIG Python interface files for SBProcess, SBThread, and SBFrame.Johnny Chen2011-07-187-12/+591
| | | | llvm-svn: 135419
* Fix header documentations.Johnny Chen2011-07-182-2/+2
| | | | llvm-svn: 135417
* Add two new interface files SBValue.i and SBValueList.i, instead of directly ↵Johnny Chen2011-07-183-2/+366
| | | | | | swigging the header files. llvm-svn: 135416
* Cleaned up the interface file for SBTarget.Johnny Chen2011-07-181-50/+0
| | | | llvm-svn: 135405
* Runtime errors in Python scripts were not being shown; this fix makes them ↵Enrico Granata2011-07-181-0/+4
| | | | | | print out to ease correcting errors llvm-svn: 135395
* Have SWIG generate autodoc strings with parameter types for all SB API ↵Johnny Chen2011-07-162-2/+3
| | | | | | objects by default. llvm-svn: 135357
* Create an interface file for SBTarget named SBTarget.i which relieves SBTarget.hJohnny Chen2011-07-163-16/+494
| | | | | | | | | | | | | 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
* Add some more docstrings for SBCompileUnit and SBBreakpoint, plus ↵Johnny Chen2011-07-151-3/+4
| | | | | | | | | | | | 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
* Python summary strings:Enrico Granata2011-07-151-0/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - you can use a Python script to write a summary string for data-types, in one of three ways: -P option and typing the script a line at a time -s option and passing a one-line Python script -F option and passing the name of a Python function these options all work for the "type summary add" command your Python code (if provided through -P or -s) is wrapped in a function that accepts two parameters: valobj (a ValueObject) and dict (an LLDB internal dictionary object). if you use -F and give a function name, you're expected to define the function on your own and with the right prototype. your function, however defined, must return a Python string - test case for the Python summary feature - a few quirks: Python summaries cannot have names, and cannot use regex as type names both issues will be fixed ASAP major redesign of type summary code: - type summary working with strings and type summary working with Python code are two classes, with a common base class SummaryFormat - SummaryFormat classes now are able to actively format objects rather than just aggregating data - cleaner code to print descriptions for summaries the public API now exports a method to easily navigate a ValueObject hierarchy New InputReaderEZ and PriorityPointerPair classes Several minor fixes and improvements llvm-svn: 135238
* Add summary info for SBBreakpoint to the lldb module level docstring.Johnny Chen2011-07-141-1/+3
| | | | llvm-svn: 135194
* Minor wording change.Johnny Chen2011-07-141-1/+1
| | | | llvm-svn: 135190
* Add some more docstrings (includng example usages) to SBTarget.h.Johnny Chen2011-07-141-0/+3
| | | | | | | | 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
* Missed the char_to_str_xform on the docstrings for the module level function ↵Johnny Chen2011-07-081-1/+3
| | | | | | definitions. llvm-svn: 134775
* o TestEvents.py:Johnny Chen2011-07-081-1/+10
| | | | | | | | | | | | | | | | Add a usage example of SBEvent APIs. o SBEvent.h and SBListener.h: Add method docstrings for SBEvent.h and SBListener.h, and example usage of SBEvent into the class docstring of SBEvent. o lldb.swig: Add typemap for SBEvent::SBEvent (uint32_t event, const char *cstr, uint32_t cstr_len) so that we can use, in Python, obj2 = lldb.SBEvent(0, "abc") to create an SBEvent. llvm-svn: 134766
* Add post-processing step to transform the docstring from 'char', i.e., 'char ↵Johnny Chen2011-07-061-0/+24
| | | | | | *', to 'str', i.e., Python string. llvm-svn: 134543
* Add a CLEANUP_DOCSTRING state to our FSM to do cleanup of the Python docstringsJohnny Chen2011-07-031-16/+41
| | | | | | | generated from the swig docstring features instead of blindly applying the cleanup action for all input lines. llvm-svn: 134368
* Add swig docstrings for SBFrame.h.Johnny Chen2011-07-031-2/+3
| | | | | | Add post-processing step to remove the trailing blank lines from the docstrings of lldb.py. llvm-svn: 134360
* Refine the post-processing phase of lldb.py to remove some more ↵Johnny Chen2011-07-021-1/+11
| | | | | | doxygen/c++-comment residues. llvm-svn: 134326
* Add some documentation blocks to SBTarget.h and use swig docstring feature toJohnny Chen2011-07-011-0/+16
| | | | | | | take advantage of them. Update modify-python-lldb.py to remove some 'residues' resulting from swigification. llvm-svn: 134269
* Add docstrings for some API classes and auto-generates docstrings for the ↵Johnny Chen2011-07-011-1/+1
| | | | | | | | | methods of them. A few of the auto-generated method docstrings don't look right, and may need to be fixed by either overwriting the auto-gened docstrings or some post-processing steps. llvm-svn: 134246
OpenPOWER on IntegriCloud