summaryrefslogtreecommitdiff
path: root/lldb/examples/python/templates
AgeCommit message (Collapse)Author
2025-06-20[lldb] Add support for x86_64h to scripted process (#145099)Med Ismail Bennani
This patch adds support to the haswell sub-architecture (x86_64h) to scripted processes. rdar://147208252 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2024-11-15[lldb] Only run scripted process test on x86_64/arm64Jason Molenda
The newly added test/API/functionalities/scripted_process_empty_memory_region/dummy_scripted_process.py imports examples/python/templates/scripted_process.py which only has register definitions for x86_64 and arm64. Only run this test on those two architectures for now.
2024-09-24Add the ability to define custom completers to the parsed_cmd template. ↵jimingham
(#109062) If your arguments or option values are of a type that naturally uses one of our common completion mechanisms, you will get completion for free. But if you have your own custom values or if you want to do fancy things like have `break set -s foo.dylib -n ba<TAB>` only complete on symbols in foo.dylib, you can use this new mechanism to achieve that.
2024-07-02[lldb] Add scripted thread plan python base class to lldb & website (#97481)Med Ismail Bennani
Following a feedback request in #97262, I took out the scripted thread plan python base class from it and make a separate PR for it. This patch adds the scripted thread plan base python class to the lldb python module as well as the lldb documentation website. Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2024-07-02[lldb/docs] Add scripting extensions documentation to the website (#97262)Med Ismail Bennani
This patch adds the documentation for a subset of scripting extensions such as scripted process, scripted thread, operating system threads & scritped thread plans to the lldb website. Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2024-02-13Move the parsed_cmd conversion def's to module level functions.Jim Ingham
Python3.9 does not allow you to put a reference to a class staticmethod in a table and call it from there. Python3.10 and following do allow this, but we still support 3.9. staticmethod was slightly cleaner, but this will do.
2024-02-13Add the ability to define a Python based command that uses ↵jimingham
CommandObjectParsed (#70734) This allows you to specify options and arguments and their definitions and then have lldb handle the completions, help, etc. in the same way that lldb does for its parsed commands internally. This feature has some design considerations as well as the code, so I've also set up an RFC, but I did this one first and will put the RFC address in here once I've pushed it... Note, the lldb "ParsedCommand interface" doesn't actually do all the work that it should. For instance, saying the type of an option that has a completer doesn't automatically hook up the completer, and ditto for argument values. We also do almost no work to verify that the arguments match their definition, or do auto-completion for them. This patch allows you to make a command that's bug-for-bug compatible with built-in ones, but I didn't want to stall it on getting the auto-command checking to work all the way correctly. As an overall design note, my primary goal here was to make an interface that worked well in the script language. For that I needed, for instance, to have a property-based way to get all the option values that were specified. It was much more convenient to do that by making a fairly bare-bones C interface to define the options and arguments of a command, and set their values, and then wrap that in a Python class (installed along with the other bits of the lldb python module) which you can then derive from to make your new command. This approach will also make it easier to experiment. See the file test_commands.py in the test case for examples of how this works.
2023-10-26[lldb] Add OperatingSystem base class to the lldb python moduleMed Ismail Bennani
This patch introduces an `OperatingSystem` base implementation in the `lldb` python module to make it easier for lldb users to write their own implementation. The `OperatingSystem` base implementation is derived itself from the `ScriptedThread` base implementation since they share some common grounds. To achieve that, this patch makes changes to the `ScriptedThread` initializer since it gets called by the `OperatingSystem` initializer. I also took the opportunity to document the `OperatingSystem` base class and methods. Differential Revision: https://reviews.llvm.org/D159315 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2023-10-23[lldb] Move template python files to separate directoryMed Ismail Bennani
This patch moves the template files for the various scripting affordances to a separate directory. This is a preparatory work for upcoming improvements and consolidations to other scripting affordances. Differential Revision: https://reviews.llvm.org/D159310 Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>