jingham created this revision. jingham added reviewers: mib, JDevlieghere. Herald added a project: All. jingham requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
We're suggesting people use the form of the command that takes an exe_ctx - it is both more convenient and more correct - since you should not be using GetSelected{Target, Process, etc.} in commands. Since we write the function template, and this is purely additive, anything you used to enter in this editor mode will still work, you just won't use the new exe_ctx argument. So this shouldn't affect any workflows. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D139684 Files: lldb/source/Commands/CommandObjectCommands.cpp lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp lldb/test/Shell/Commands/command-script-add.test Index: lldb/test/Shell/Commands/command-script-add.test =================================================================== --- /dev/null +++ lldb/test/Shell/Commands/command-script-add.test @@ -0,0 +1,9 @@ +# Test that command script add with no arguments prompts for +# and generates the modern (exe_ctx) version of the command. + +# RUN: %lldb < %s | FileCheck %s +command script add doit +print(exe_ctx.target) +DONE +doit +# CHECK: No value Index: lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp =================================================================== --- lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -1369,7 +1369,7 @@ std::string auto_generated_function_name(GenerateUniqueName( "lldb_autogen_python_cmd_alias_func", num_created_functions)); - sstr.Printf("def %s (debugger, args, result, internal_dict):", + sstr.Printf("def %s (debugger, args, exe_ctx, result, internal_dict):", auto_generated_function_name.c_str()); if (!GenerateFunction(sstr.GetData(), user_input).Success()) Index: lldb/source/Commands/CommandObjectCommands.cpp =================================================================== --- lldb/source/Commands/CommandObjectCommands.cpp +++ lldb/source/Commands/CommandObjectCommands.cpp @@ -201,7 +201,7 @@ static const char *g_python_command_instructions = "Enter your Python command(s). Type 'DONE' to end.\n" "You must define a Python function with this signature:\n" - "def my_command_impl(debugger, args, result, internal_dict):\n"; + "def my_command_impl(debugger, args, exe_ctx, result, internal_dict):\n"; class CommandObjectCommandsAlias : public CommandObjectRaw { protected:
Index: lldb/test/Shell/Commands/command-script-add.test =================================================================== --- /dev/null +++ lldb/test/Shell/Commands/command-script-add.test @@ -0,0 +1,9 @@ +# Test that command script add with no arguments prompts for +# and generates the modern (exe_ctx) version of the command. + +# RUN: %lldb < %s | FileCheck %s +command script add doit +print(exe_ctx.target) +DONE +doit +# CHECK: No value Index: lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp =================================================================== --- lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -1369,7 +1369,7 @@ std::string auto_generated_function_name(GenerateUniqueName( "lldb_autogen_python_cmd_alias_func", num_created_functions)); - sstr.Printf("def %s (debugger, args, result, internal_dict):", + sstr.Printf("def %s (debugger, args, exe_ctx, result, internal_dict):", auto_generated_function_name.c_str()); if (!GenerateFunction(sstr.GetData(), user_input).Success()) Index: lldb/source/Commands/CommandObjectCommands.cpp =================================================================== --- lldb/source/Commands/CommandObjectCommands.cpp +++ lldb/source/Commands/CommandObjectCommands.cpp @@ -201,7 +201,7 @@ static const char *g_python_command_instructions = "Enter your Python command(s). Type 'DONE' to end.\n" "You must define a Python function with this signature:\n" - "def my_command_impl(debugger, args, result, internal_dict):\n"; + "def my_command_impl(debugger, args, exe_ctx, result, internal_dict):\n"; class CommandObjectCommandsAlias : public CommandObjectRaw { protected:
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits