diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py @@ -12,8 +12,10 @@ '''Create the Visual Studio Code debug adaptor''' self.assertTrue(os.path.exists(self.lldbVSCodeExec), 'lldb-vscode must exist') + log_file_path = self.getBuildArtifact('vscode.txt') self.vscode = vscode.DebugAdaptor( - executable=self.lldbVSCodeExec, init_commands=self.setUpCommands()) + executable=self.lldbVSCodeExec, init_commands=self.setUpCommands(), + log_file=log_file_path) def build_and_create_debug_adaptor(self): self.build() @@ -133,7 +135,7 @@ key, key_path, d)) return value - def get_stackFrames_and_totalFramesCount(self, threadId=None, startFrame=None, + def get_stackFrames_and_totalFramesCount(self, threadId=None, startFrame=None, levels=None, dump=False): response = self.vscode.request_stackTrace(threadId=threadId, startFrame=startFrame, diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py @@ -847,13 +847,17 @@ class DebugAdaptor(DebugCommunication): - def __init__(self, executable=None, port=None, init_commands=[]): + def __init__(self, executable=None, port=None, init_commands=[], log_file=None): self.process = None if executable is not None: + adaptor_env = os.environ.copy() + if log_file: + adaptor_env['LLDBVSCODE_LOG'] = log_file self.process = subprocess.Popen([executable], stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE, + env=adaptor_env) DebugCommunication.__init__(self, self.process.stdout, self.process.stdin, init_commands) elif port is not None: diff --git a/lldb/tools/lldb-vscode/VSCode.cpp b/lldb/tools/lldb-vscode/VSCode.cpp --- a/lldb/tools/lldb-vscode/VSCode.cpp +++ b/lldb/tools/lldb-vscode/VSCode.cpp @@ -129,6 +129,12 @@ if (!input.read_full(log.get(), length, json_str)) return json_str; + if (log) { + *log << "--> " << std::endl + << "Content-Length: " << length << "\r\n\r\n" + << json_str << std::endl; + } + return json_str; }