forked from OSchip/llvm-project
Fix lldb-vscode logging and enable logging for all lldb-vscode tests.
Summary: This patch fixes logging to log incoming packets which was removed during a refactor. We also enable logging to a "vscode.txt" file for each lldb-vscode test by creating the log file in the build artifacts directory for each test. This allows users to see the packets for their tests if needed and the log file is in a directory that will be removed after tests have been run. Reviewers: labath, aadsm, serhiy.redko, jankratochvil, xiaobai, wallace Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74566
This commit is contained in:
parent
f0b57d8071
commit
7202d1c2f6
|
@ -12,8 +12,10 @@ class VSCodeTestCaseBase(TestBase):
|
||||||
'''Create the Visual Studio Code debug adaptor'''
|
'''Create the Visual Studio Code debug adaptor'''
|
||||||
self.assertTrue(os.path.exists(self.lldbVSCodeExec),
|
self.assertTrue(os.path.exists(self.lldbVSCodeExec),
|
||||||
'lldb-vscode must exist')
|
'lldb-vscode must exist')
|
||||||
|
log_file_path = self.getBuildArtifact('vscode.txt')
|
||||||
self.vscode = vscode.DebugAdaptor(
|
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):
|
def build_and_create_debug_adaptor(self):
|
||||||
self.build()
|
self.build()
|
||||||
|
@ -133,7 +135,7 @@ class VSCodeTestCaseBase(TestBase):
|
||||||
key, key_path, d))
|
key, key_path, d))
|
||||||
return value
|
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):
|
levels=None, dump=False):
|
||||||
response = self.vscode.request_stackTrace(threadId=threadId,
|
response = self.vscode.request_stackTrace(threadId=threadId,
|
||||||
startFrame=startFrame,
|
startFrame=startFrame,
|
||||||
|
|
|
@ -847,13 +847,17 @@ class DebugCommunication(object):
|
||||||
|
|
||||||
|
|
||||||
class DebugAdaptor(DebugCommunication):
|
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
|
self.process = None
|
||||||
if executable is not 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],
|
self.process = subprocess.Popen([executable],
|
||||||
stdin=subprocess.PIPE,
|
stdin=subprocess.PIPE,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE)
|
stderr=subprocess.PIPE,
|
||||||
|
env=adaptor_env)
|
||||||
DebugCommunication.__init__(self, self.process.stdout,
|
DebugCommunication.__init__(self, self.process.stdout,
|
||||||
self.process.stdin, init_commands)
|
self.process.stdin, init_commands)
|
||||||
elif port is not None:
|
elif port is not None:
|
||||||
|
|
|
@ -129,6 +129,12 @@ std::string VSCode::ReadJSON() {
|
||||||
if (!input.read_full(log.get(), length, json_str))
|
if (!input.read_full(log.get(), length, json_str))
|
||||||
return json_str;
|
return json_str;
|
||||||
|
|
||||||
|
if (log) {
|
||||||
|
*log << "--> " << std::endl
|
||||||
|
<< "Content-Length: " << length << "\r\n\r\n"
|
||||||
|
<< json_str << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
return json_str;
|
return json_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue