| # Accessing Script Documentation | |
| The LLDB API is contained in a python module named lldb. A useful resource when | |
| writing Python extensions is the lldb Python classes reference guide. | |
| The documentation is also accessible in an interactive debugger session with | |
| the following command: | |
| ```python3 | |
| (lldb) script help(lldb) | |
| Help on package lldb: | |
| NAME | |
| lldb - The lldb module contains the public APIs for Python binding. | |
| FILE | |
| /System/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/__init__.py | |
| DESCRIPTION | |
| ... | |
| ``` | |
| You can also get help using a module class name. The full API that is exposed | |
| for that class will be displayed in a man page style window. Below we want to | |
| get help on the lldb.SBFrame class: | |
| ```python3 | |
| (lldb) script help(lldb.SBFrame) | |
| Help on class SBFrame in module lldb: | |
| class SBFrame(builtins.object) | |
| | SBFrame(*args) | |
| | | |
| | Represents one of the stack frames associated with a thread. | |
| | | |
| | SBThread contains SBFrame(s). For example (from test/lldbutil.py), :: | |
| | | |
| | def print_stacktrace(thread, string_buffer = False): | |
| | '''Prints a simple stack trace of this thread.''' | |
| ... | |
| ``` | |
| Or you can get help using any python object, here we use the lldb.process | |
| object which is a global variable in the lldb module which represents the | |
| currently selected process: | |
| ```python3 | |
| (lldb) script help(lldb.process) | |
| Help on SBProcess in module lldb object: | |
| class SBProcess(builtins.object) | |
| | SBProcess(*args) | |
| | | |
| | Represents the process associated with the target program. | |
| | | |
| | SBProcess supports thread iteration. For example (from test/lldbutil.py), :: | |
| | | |
| | # ================================================== | |
| | # Utility functions related to Threads and Processes | |
| | # ================================================== | |
| ... | |
| ``` |