yinghuitan created this revision.
yinghuitan added reviewers: clayborg, labath, jingham, jdoerfert, JDevlieghere,
aadsm, kusmour, fixathon.
Herald added a project: All.
yinghuitan requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
lldb-vscode is hard-coded to source .lldbinit file which causes some tests to
fail on my machine.
This patch adds a new option to control this:
1. vscode.py and lldb-vscode tests will not source .lldbinit by default
2. lldb-vscode will source .lldbinit in production if not specified otherwise
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D135620
Files:
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
lldb/tools/lldb-vscode/lldb-vscode.cpp
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===================================================================
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -1444,8 +1444,12 @@
auto log_cb = [](const char *buf, void *baton) -> void {
g_vsc.SendOutput(OutputType::Console, llvm::StringRef{buf});
};
+
+ auto arguments = request.getObject("arguments");
+ bool source_init_file = GetBoolean(arguments, "sourceInitFile", true);
+
g_vsc.debugger =
- lldb::SBDebugger::Create(true /*source_init_files*/, log_cb, nullptr);
+ lldb::SBDebugger::Create(source_init_file, log_cb, nullptr);
g_vsc.progress_event_thread = std::thread(ProgressEventThreadFunction);
// Start our event thread so we can receive events from the debugger, target,
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
@@ -613,7 +613,7 @@
}
return self.send_recv(command_dict)
- def request_initialize(self):
+ def request_initialize(self, sourceInitFile):
command_dict = {
'command': 'initialize',
'type': 'request',
@@ -626,7 +626,8 @@
'pathFormat': 'path',
'supportsRunInTerminalRequest': True,
'supportsVariablePaging': True,
- 'supportsVariableType': True
+ 'supportsVariableType': True,
+ 'sourceInitFile': sourceInitFile
}
}
response = self.send_recv(command_dict)
@@ -1004,7 +1005,7 @@
def run_vscode(dbg, args, options):
- dbg.request_initialize()
+ dbg.request_initialize(options.sourceInitFile)
if attach_options_specified(options):
response = dbg.request_attach(program=options.program,
pid=options.pid,
@@ -1112,6 +1113,13 @@
default=False,
help='Pause waiting for a debugger to attach to the debug adaptor')
+ parser.add_option(
+ '--sourceInitFile',
+ action='store_true',
+ dest='sourceInitFile',
+ default=False,
+ help='Whether lldb-vscode should source .lldbinit file or not')
+
parser.add_option(
'--port',
type='int',
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
@@ -253,7 +253,7 @@
initCommands=None, preRunCommands=None, stopCommands=None,
exitCommands=None, attachCommands=None, coreFile=None,
disconnectAutomatically=True, terminateCommands=None,
- postRunCommands=None, sourceMap=None):
+ postRunCommands=None, sourceMap=None, sourceInitFile=False):
'''Build the default Makefile target, create the VSCode debug adaptor,
and attach to the process.
'''
@@ -267,7 +267,7 @@
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
# Initialize and launch the program
- self.vscode.request_initialize()
+ self.vscode.request_initialize(sourceInitFile)
response = self.vscode.request_attach(
program=program, pid=pid, waitFor=waitFor, trace=trace,
initCommands=initCommands, preRunCommands=preRunCommands,
@@ -284,7 +284,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, terminateCommands=None,
- sourcePath=None, debuggerRoot=None, launchCommands=None,
+ sourcePath=None, debuggerRoot=None, sourceInitFile=False, launchCommands=None,
sourceMap=None, disconnectAutomatically=True, runInTerminal=False,
expectFailure=False, postRunCommands=None):
'''Sending launch request to vscode
@@ -301,7 +301,7 @@
self.addTearDownHook(cleanup)
# Initialize and launch the program
- self.vscode.request_initialize()
+ self.vscode.request_initialize(sourceInitFile)
response = self.vscode.request_launch(
program,
args=args,
@@ -344,7 +344,7 @@
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None,
terminateCommands=None, sourcePath=None,
- debuggerRoot=None, runInTerminal=False,
+ debuggerRoot=None, sourceInitFile=False, runInTerminal=False,
disconnectAutomatically=True, postRunCommands=None,
lldbVSCodeEnv=None):
'''Build the default Makefile target, create the VSCode debug adaptor,
@@ -356,6 +356,7 @@
return self.launch(program, args, cwd, env, stopOnEntry, disableASLR,
disableSTDIO, shellExpandArguments, trace,
initCommands, preRunCommands, stopCommands, exitCommands,
- terminateCommands, sourcePath, debuggerRoot, runInTerminal=runInTerminal,
+ terminateCommands, sourcePath, debuggerRoot, sourceInitFile,
+ runInTerminal=runInTerminal,
disconnectAutomatically=disconnectAutomatically,
postRunCommands=postRunCommands)
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits