================ @@ -0,0 +1,313 @@ +""" +This module implements a couple of utility classes to make writing +lldb parsed commands more Pythonic. +The way to use it is to make a class for your command that inherits from ParsedCommandBase. +That will make an LLDBOVParser which you will use for your +option definition, and to fetch option values for the current invocation +of your command. Access to the OV parser is through: + +ParsedCommandBase.get_parser() + +Next, implement setup_command_definition() in your new command class, and call: + + self.get_parser().add_option() + +to add all your options. The order doesn't matter for options, lldb will sort them +alphabetically for you when it prints help. + +Similarly you can define the arguments with: + + self.get_parser().add_argument() + +At present, lldb doesn't do as much work as it should verifying arguments, it +only checks that commands that take no arguments don't get passed arguments. + +Then implement the execute function for your command as: + + def __call__(self, debugger, args_list, exe_ctx, result): + +The arguments will be a list of strings. + +You can access the option values using the 'dest' string you passed in when defining the option. + +If you need to know whether a given option was set by the user or not, you can +use the was_set API. ---------------- jimingham wrote:
Yes, it's a part of the ov_parser API. I added examples. https://github.com/llvm/llvm-project/pull/70734 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits