Coverage Report

Created: 2023-11-11 10:31

/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/source/API/SBHostOS.cpp
Line
Count
Source (jump to first uncovered line)
1
//===-- SBHostOS.cpp ------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "lldb/API/SBHostOS.h"
10
#include "lldb/API/SBError.h"
11
#include "lldb/Host/Config.h"
12
#include "lldb/Host/FileSystem.h"
13
#include "lldb/Host/Host.h"
14
#include "lldb/Host/HostInfo.h"
15
#include "lldb/Host/HostNativeThread.h"
16
#include "lldb/Host/HostThread.h"
17
#include "lldb/Host/ThreadLauncher.h"
18
#include "lldb/Utility/FileSpec.h"
19
#include "lldb/Utility/Instrumentation.h"
20
21
#include "Plugins/ExpressionParser/Clang/ClangHost.h"
22
#if LLDB_ENABLE_PYTHON
23
#include "Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h"
24
#endif
25
26
#include "llvm/ADT/SmallString.h"
27
#include "llvm/Support/Path.h"
28
29
using namespace lldb;
30
using namespace lldb_private;
31
32
0
SBFileSpec SBHostOS::GetProgramFileSpec() {
33
0
  LLDB_INSTRUMENT();
34
35
0
  SBFileSpec sb_filespec;
36
0
  sb_filespec.SetFileSpec(HostInfo::GetProgramFileSpec());
37
0
  return sb_filespec;
38
0
}
39
40
1.14k
SBFileSpec SBHostOS::GetLLDBPythonPath() {
41
1.14k
  LLDB_INSTRUMENT();
42
43
1.14k
  return GetLLDBPath(ePathTypePythonDir);
44
1.14k
}
45
46
1.24k
SBFileSpec SBHostOS::GetLLDBPath(lldb::PathType path_type) {
47
1.24k
  LLDB_INSTRUMENT_VA(path_type);
48
49
1.24k
  FileSpec fspec;
50
1.24k
  switch (path_type) {
51
2
  case ePathTypeLLDBShlibDir:
52
2
    fspec = HostInfo::GetShlibDir();
53
2
    break;
54
94
  case ePathTypeSupportExecutableDir:
55
94
    fspec = HostInfo::GetSupportExeDir();
56
94
    break;
57
1
  case ePathTypeHeaderDir:
58
1
    fspec = HostInfo::GetHeaderDir();
59
1
    break;
60
1.14k
  case ePathTypePythonDir:
61
1.14k
#if LLDB_ENABLE_PYTHON
62
1.14k
    fspec = ScriptInterpreterPython::GetPythonDir();
63
1.14k
#endif
64
1.14k
    break;
65
1
  case ePathTypeLLDBSystemPlugins:
66
1
    fspec = HostInfo::GetSystemPluginDir();
67
1
    break;
68
1
  case ePathTypeLLDBUserPlugins:
69
1
    fspec = HostInfo::GetUserPluginDir();
70
1
    break;
71
1
  case ePathTypeLLDBTempSystemDir:
72
1
    fspec = HostInfo::GetProcessTempDir();
73
1
    break;
74
0
  case ePathTypeGlobalLLDBTempSystemDir:
75
0
    fspec = HostInfo::GetGlobalTempDir();
76
0
    break;
77
1
  case ePathTypeClangDir:
78
1
    fspec = GetClangResourceDir();
79
1
    break;
80
1.24k
  }
81
82
1.24k
  SBFileSpec sb_fspec;
83
1.24k
  sb_fspec.SetFileSpec(fspec);
84
1.24k
  return sb_fspec;
85
1.24k
}
86
87
0
SBFileSpec SBHostOS::GetUserHomeDirectory() {
88
0
  LLDB_INSTRUMENT();
89
90
0
  FileSpec homedir;
91
0
  FileSystem::Instance().GetHomeDirectory(homedir);
92
0
  FileSystem::Instance().Resolve(homedir);
93
94
0
  SBFileSpec sb_fspec;
95
0
  sb_fspec.SetFileSpec(homedir);
96
97
0
  return sb_fspec;
98
0
}
99
100
lldb::thread_t SBHostOS::ThreadCreate(const char *name,
101
                                      lldb::thread_func_t thread_function,
102
0
                                      void *thread_arg, SBError *error_ptr) {
103
0
  LLDB_INSTRUMENT_VA(name, thread_function, thread_arg, error_ptr);
104
0
  return LLDB_INVALID_HOST_THREAD;
105
0
}
106
107
0
void SBHostOS::ThreadCreated(const char *name) { LLDB_INSTRUMENT_VA(name); }
108
109
0
bool SBHostOS::ThreadCancel(lldb::thread_t thread, SBError *error_ptr) {
110
0
  LLDB_INSTRUMENT_VA(thread, error_ptr);
111
0
  return false;
112
0
}
113
114
0
bool SBHostOS::ThreadDetach(lldb::thread_t thread, SBError *error_ptr) {
115
0
  LLDB_INSTRUMENT_VA(thread, error_ptr);
116
0
  return false;
117
0
}
118
119
bool SBHostOS::ThreadJoin(lldb::thread_t thread, lldb::thread_result_t *result,
120
0
                          SBError *error_ptr) {
121
0
  LLDB_INSTRUMENT_VA(thread, result, error_ptr);
122
0
  return false;
123
0
}