This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG79fbbeb41280: [lldb-vscode] Add postRunCommands (authored by
wallace).
Changed prior to commit:
https://reviews.llvm.org/D100340?vs=336942&id=339374#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100340/new/
https://reviews.llvm.org/D100340
Files:
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
lldb/test/API/tools/lldb-vscode/attach/TestVSCode_attach.py
lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
lldb/tools/lldb-vscode/lldb-vscode.cpp
lldb/tools/lldb-vscode/package.json
Index: lldb/tools/lldb-vscode/package.json
===================================================================
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -161,6 +161,11 @@
"description": "Commands executed just before the program is launched.",
"default": []
},
+ "postRunCommands": {
+ "type": "array",
+ "description": "Commands executed just as soon as the program is successfully launched when it's in a stopped state prior to any automatic continuation.",
+ "default": []
+ },
"launchCommands": {
"type": "array",
"description": "Custom commands that are executed instead of launching a process. A target will be created with the launch arguments prior to executing these commands. The commands may optionally create a new target and must perform a launch. A valid process must exist after these commands complete or the \"launch\" will fail.",
@@ -237,6 +242,11 @@
"description": "Commands executed just before the program is attached to.",
"default": []
},
+ "postRunCommands": {
+ "type": "array",
+ "description": "Commands executed just as soon as the program is successfully attached when it's in a stopped state prior to any automatic continuation.",
+ "default": []
+ },
"stopCommands": {
"type": "array",
"description": "Commands executed each time the program stops.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===================================================================
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -570,6 +570,8 @@
llvm::StringRef core_file = GetString(arguments, "coreFile");
g_vsc.stop_at_entry =
core_file.empty() ? GetBoolean(arguments, "stopOnEntry", false) : true;
+ std::vector<std::string> postRunCommands =
+ GetStrings(arguments, "postRunCommands");
const llvm::StringRef debuggerRoot = GetString(arguments, "debuggerRoot");
// This is a hack for loading DWARF in .o files on Mac where the .o files
@@ -638,12 +640,14 @@
if (error.Fail()) {
response["success"] = llvm::json::Value(false);
EmplaceSafeString(response, "message", std::string(error.GetCString()));
+ } else {
+ g_vsc.RunLLDBCommands("Running postRunCommands:", postRunCommands);
}
+
g_vsc.SendJSON(llvm::json::Value(std::move(response)));
if (error.Success()) {
SendProcessEvent(Attach);
g_vsc.SendJSON(CreateEventObject("initialized"));
- // SendThreadStoppedEvent();
}
}
@@ -1608,6 +1612,8 @@
g_vsc.exit_commands = GetStrings(arguments, "exitCommands");
g_vsc.terminate_commands = GetStrings(arguments, "terminateCommands");
auto launchCommands = GetStrings(arguments, "launchCommands");
+ std::vector<std::string> postRunCommands =
+ GetStrings(arguments, "postRunCommands");
g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
const llvm::StringRef debuggerRoot = GetString(arguments, "debuggerRoot");
@@ -1689,7 +1695,10 @@
if (error.Fail()) {
response["success"] = llvm::json::Value(false);
EmplaceSafeString(response, "message", std::string(error.GetCString()));
+ } else {
+ g_vsc.RunLLDBCommands("Running postRunCommands:", postRunCommands);
}
+
g_vsc.SendJSON(llvm::json::Value(std::move(response)));
if (g_vsc.is_attach)
Index: lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
===================================================================
--- lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
+++ lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
@@ -313,12 +313,14 @@
program = self.getBuildArtifact("a.out")
initCommands = ['target list', 'platform list']
preRunCommands = ['image list a.out', 'image dump sections a.out']
+ postRunCommands = ['help trace', 'help process trace']
stopCommands = ['frame variable', 'bt']
exitCommands = ['expr 2+3', 'expr 3+4']
terminateCommands = ['expr 4+2']
self.build_and_launch(program,
initCommands=initCommands,
preRunCommands=preRunCommands,
+ postRunCommands=postRunCommands,
stopCommands=stopCommands,
exitCommands=exitCommands,
terminateCommands=terminateCommands)
@@ -330,6 +332,8 @@
self.verify_commands('initCommands', output, initCommands)
# Verify all "preRunCommands" were found in console output
self.verify_commands('preRunCommands', output, preRunCommands)
+ # Verify all "postRunCommands" were found in console output
+ self.verify_commands('postRunCommands', output, postRunCommands)
source = 'main.c'
first_line = line_number(source, '// breakpoint 1')
Index: lldb/test/API/tools/lldb-vscode/attach/TestVSCode_attach.py
===================================================================
--- lldb/test/API/tools/lldb-vscode/attach/TestVSCode_attach.py
+++ lldb/test/API/tools/lldb-vscode/attach/TestVSCode_attach.py
@@ -149,6 +149,7 @@
]
initCommands = ['target list', 'platform list']
preRunCommands = ['image list a.out', 'image dump sections a.out']
+ postRunCommands = ['help trace', 'help process trace']
stopCommands = ['frame variable', 'bt']
exitCommands = ['expr 2+3', 'expr 3+4']
terminateCommands = ['expr 4+2']
@@ -158,7 +159,8 @@
preRunCommands=preRunCommands,
stopCommands=stopCommands,
exitCommands=exitCommands,
- terminateCommands=terminateCommands)
+ terminateCommands=terminateCommands,
+ postRunCommands=postRunCommands)
# Get output from the console. This should contain both the
# "initCommands" and the "preRunCommands".
output = self.get_console()
@@ -166,6 +168,8 @@
self.verify_commands('initCommands', output, initCommands)
# Verify all "preRunCommands" were found in console output
self.verify_commands('preRunCommands', output, preRunCommands)
+ # Verify all "postRunCommands" were found in console output
+ self.verify_commands('postRunCommands', output, postRunCommands)
functions = ['main']
breakpoint_ids = self.set_function_breakpoints(functions)
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -494,7 +494,7 @@
initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None,
attachCommands=None, terminateCommands=None,
- coreFile=None):
+ coreFile=None, postRunCommands=None):
args_dict = {}
if pid is not None:
args_dict['pid'] = pid
@@ -519,6 +519,8 @@
args_dict['attachCommands'] = attachCommands
if coreFile:
args_dict['coreFile'] = coreFile
+ if postRunCommands:
+ args_dict['postRunCommands'] = postRunCommands
command_dict = {
'command': 'attach',
'type': 'request',
@@ -621,7 +623,8 @@
stopCommands=None, exitCommands=None,
terminateCommands=None ,sourcePath=None,
debuggerRoot=None, launchCommands=None, sourceMap=None,
- runInTerminal=False, expectFailure=False):
+ runInTerminal=False, expectFailure=False,
+ postRunCommands=None):
args_dict = {
'program': program
}
@@ -662,6 +665,8 @@
args_dict['sourceMap'] = sourceMap
if runInTerminal:
args_dict['runInTerminal'] = runInTerminal
+ if postRunCommands:
+ args_dict['postRunCommands'] = postRunCommands
command_dict = {
'command': 'launch',
'type': 'request',
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -251,7 +251,8 @@
def attach(self, program=None, pid=None, waitFor=None, trace=None,
initCommands=None, preRunCommands=None, stopCommands=None,
exitCommands=None, attachCommands=None, coreFile=None,
- disconnectAutomatically=True, terminateCommands=None):
+ disconnectAutomatically=True, terminateCommands=None,
+ postRunCommands=None):
'''Build the default Makefile target, create the VSCode debug adaptor,
and attach to the process.
'''
@@ -271,7 +272,7 @@
initCommands=initCommands, preRunCommands=preRunCommands,
stopCommands=stopCommands, exitCommands=exitCommands,
attachCommands=attachCommands, terminateCommands=terminateCommands,
- coreFile=coreFile)
+ coreFile=coreFile, postRunCommands=postRunCommands)
if not (response and response['success']):
self.assertTrue(response['success'],
'attach failed (%s)' % (response['message']))
@@ -283,7 +284,7 @@
stopCommands=None, exitCommands=None, terminateCommands=None,
sourcePath=None, debuggerRoot=None, launchCommands=None,
sourceMap=None, disconnectAutomatically=True, runInTerminal=False,
- expectFailure=False):
+ expectFailure=False, postRunCommands=None):
'''Sending launch request to vscode
'''
@@ -319,7 +320,8 @@
launchCommands=launchCommands,
sourceMap=sourceMap,
runInTerminal=runInTerminal,
- expectFailure=expectFailure)
+ expectFailure=expectFailure,
+ postRunCommands=postRunCommands)
if expectFailure:
return response
@@ -341,7 +343,7 @@
stopCommands=None, exitCommands=None,
terminateCommands=None, sourcePath=None,
debuggerRoot=None, runInTerminal=False,
- disconnectAutomatically=True):
+ disconnectAutomatically=True, postRunCommands=None):
'''Build the default Makefile target, create the VSCode debug adaptor,
and launch the process.
'''
@@ -352,4 +354,5 @@
disableSTDIO, shellExpandArguments, trace,
initCommands, preRunCommands, stopCommands, exitCommands,
terminateCommands, sourcePath, debuggerRoot, runInTerminal=runInTerminal,
- disconnectAutomatically=disconnectAutomatically)
+ disconnectAutomatically=disconnectAutomatically,
+ postRunCommands=postRunCommands)
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits