Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
09d1cd70
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
09d1cd70
编写于
3月 20, 2020
作者:
M
msftbot[bot]
提交者:
GitHub
3月 20, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #42607 from dotnet/merges/release/dev16.6-preview2-to-master
Merge release/dev16.6-preview2 to master
上级
3c38a9a7
fb4cbc82
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
50 addition
and
30 deletion
+50
-30
src/VisualStudio/Core/Def/Implementation/Watson/WatsonReporter.cs
...alStudio/Core/Def/Implementation/Watson/WatsonReporter.cs
+34
-16
src/Workspaces/Core/Portable/Remote/WellKnownServiceHubServices.cs
...paces/Core/Portable/Remote/WellKnownServiceHubServices.cs
+16
-14
未找到文件。
src/VisualStudio/Core/Def/Implementation/Watson/WatsonReporter.cs
浏览文件 @
09d1cd70
...
...
@@ -10,6 +10,7 @@
using
System.IO
;
using
System.Reflection
;
using
Microsoft.CodeAnalysis.Internal.Log
;
using
Microsoft.CodeAnalysis.Remote
;
using
Microsoft.VisualStudio.LanguageServices.Telemetry
;
using
Microsoft.VisualStudio.Telemetry
;
...
...
@@ -57,7 +58,15 @@ public static void InitializeLogger(TraceSource logger)
public
static
void
ReportFatal
(
Exception
exception
)
{
_
=
CaptureLogFiles
();
try
{
CaptureFilesInMemory
(
CollectServiceHubLogFilePaths
());
}
catch
{
// ignore any exceptions (e.g. OOM)
}
FailFast
.
OnFatalException
(
exception
);
}
...
...
@@ -89,8 +98,6 @@ public static void ReportNonFatal(Exception exception)
return
;
}
var
logFilePaths
=
CaptureLogFiles
();
var
faultEvent
=
new
FaultEvent
(
eventName
:
FunctionId
.
NonFatalWatson
.
GetEventName
(),
description
:
"Roslyn NonFatal Watson"
,
...
...
@@ -102,7 +109,7 @@ public static void ReportNonFatal(Exception exception)
faultUtility
.
AddProcessDump
(
currentProcess
.
Id
);
// add ServiceHub log files:
foreach
(
var
path
in
logFilePaths
)
foreach
(
var
path
in
CollectServiceHubLogFilePaths
()
)
{
faultUtility
.
AddFile
(
path
);
}
...
...
@@ -119,39 +126,48 @@ public static void ReportNonFatal(Exception exception)
session
.
PostEvent
(
faultEvent
);
}
private
static
List
<
string
>
C
aptureLogFile
s
()
private
static
List
<
string
>
C
ollectServiceHubLogFilePath
s
()
{
var
result
=
new
List
<
string
>();
CollectServiceHubLogFiles
(
result
);
CaptureFilesInMemory
(
result
);
return
result
;
}
var
paths
=
new
List
<
string
>();
private
static
void
CollectServiceHubLogFiles
(
List
<
string
>
paths
)
{
try
{
var
logPath
=
Path
.
Combine
(
Path
.
GetTempPath
(),
"servicehub"
,
"logs"
);
if
(!
Directory
.
Exists
(
logPath
))
{
return
;
return
paths
;
}
// attach all log files that are modified less than 1 day before.
var
now
=
DateTime
.
UtcNow
;
var
oneDay
=
TimeSpan
.
FromDays
(
1
);
foreach
(
var
file
in
Directory
.
EnumerateFiles
(
logPath
,
"*.log"
))
foreach
(
var
path
in
Directory
.
EnumerateFiles
(
logPath
,
"*.log"
))
{
try
{
var
lastWrite
=
File
.
GetLastWriteTimeUtc
(
file
);
var
name
=
Path
.
GetFileNameWithoutExtension
(
path
);
// TODO: https://github.com/dotnet/roslyn/issues/42582
// name our services more consistently to simplify filtering
// filter logs that are not relevant to Roslyn investigation
if
(!
name
.
Contains
(
"-"
+
WellKnownServiceHubServices
.
NamePrefix
)
&&
!
name
.
Contains
(
"-CodeLens"
)
&&
!
name
.
Contains
(
"-pythia"
)
&&
!
name
.
Contains
(
"-ManagedLanguage.IDE.RemoteHostClient"
)
&&
!
name
.
Contains
(
"-hub"
))
{
continue
;
}
var
lastWrite
=
File
.
GetLastWriteTimeUtc
(
path
);
if
(
now
-
lastWrite
>
oneDay
)
{
continue
;
}
paths
.
Add
(
file
);
paths
.
Add
(
path
);
}
catch
{
...
...
@@ -163,6 +179,8 @@ private static void CollectServiceHubLogFiles(List<string> paths)
{
// ignore failures
}
return
paths
;
}
private
static
void
CaptureFilesInMemory
(
IEnumerable
<
string
>
paths
)
...
...
src/Workspaces/Core/Portable/Remote/WellKnownServiceHubServices.cs
浏览文件 @
09d1cd70
...
...
@@ -6,26 +6,28 @@ namespace Microsoft.CodeAnalysis.Remote
{
internal
static
class
WellKnownServiceHubServices
{
public
const
string
NamePrefix
=
"roslyn"
;
public
static
void
Set64bit
(
bool
x64
)
{
var
bit
=
x64
?
"64"
:
""
;
SnapshotService
=
"roslyn
Snapshot"
+
bit
;
CodeAnalysisService
=
"roslyn
CodeAnalysis"
+
bit
;
RemoteDesignerAttributeService
=
"roslyn
RemoteDesignerAttributeService"
+
bit
;
RemoteProjectTelemetryService
=
"roslyn
RemoteProjectTelemetryService"
+
bit
;
RemoteSymbolSearchUpdateEngine
=
"roslyn
RemoteSymbolSearchUpdateEngine"
+
bit
;
RemoteTodoCommentsService
=
"roslyn
RemoteTodoCommentsService"
+
bit
;
LanguageServer
=
"roslyn
LanguageServer"
+
bit
;
SnapshotService
=
NamePrefix
+
"
Snapshot"
+
bit
;
CodeAnalysisService
=
NamePrefix
+
"
CodeAnalysis"
+
bit
;
RemoteDesignerAttributeService
=
NamePrefix
+
"
RemoteDesignerAttributeService"
+
bit
;
RemoteProjectTelemetryService
=
NamePrefix
+
"
RemoteProjectTelemetryService"
+
bit
;
RemoteSymbolSearchUpdateEngine
=
NamePrefix
+
"
RemoteSymbolSearchUpdateEngine"
+
bit
;
RemoteTodoCommentsService
=
NamePrefix
+
"
RemoteTodoCommentsService"
+
bit
;
LanguageServer
=
NamePrefix
+
"
LanguageServer"
+
bit
;
}
public
static
string
SnapshotService
{
get
;
private
set
;
}
=
"roslyn
Snapshot"
;
public
static
string
CodeAnalysisService
{
get
;
private
set
;
}
=
"roslyn
CodeAnalysis"
;
public
static
string
Remote
DesignerAttributeService
{
get
;
private
set
;
}
=
"roslynRemoteDesignerAttributeServic
e"
;
public
static
string
Remote
ProjectTelemetryService
{
get
;
private
set
;
}
=
"roslynRemoteProjectTelemetry
Service"
;
public
static
string
Remote
SymbolSearchUpdateEngine
{
get
;
private
set
;
}
=
"roslynRemoteSymbolSearchUpdateEngin
e"
;
public
static
string
RemoteTodoCommentsService
{
get
;
private
set
;
}
=
"roslyn
RemoteTodoCommentsService"
;
public
static
string
LanguageServer
{
get
;
private
set
;
}
=
"roslyn
LanguageServer"
;
public
static
string
SnapshotService
{
get
;
private
set
;
}
=
NamePrefix
+
"
Snapshot"
;
public
static
string
CodeAnalysisService
{
get
;
private
set
;
}
=
NamePrefix
+
"
CodeAnalysis"
;
public
static
string
Remote
SymbolSearchUpdateEngine
{
get
;
private
set
;
}
=
NamePrefix
+
"RemoteSymbolSearchUpdateEngin
e"
;
public
static
string
Remote
DesignerAttributeService
{
get
;
private
set
;
}
=
NamePrefix
+
"RemoteDesignerAttribute
Service"
;
public
static
string
Remote
ProjectTelemetryService
{
get
;
private
set
;
}
=
NamePrefix
+
"RemoteProjectTelemetryServic
e"
;
public
static
string
RemoteTodoCommentsService
{
get
;
private
set
;
}
=
NamePrefix
+
"
RemoteTodoCommentsService"
;
public
static
string
LanguageServer
{
get
;
private
set
;
}
=
NamePrefix
+
"
LanguageServer"
;
// these are OOP implementation itself should care. not features that consume OOP care
public
const
string
ServiceHubServiceBase_Initialize
=
"Initialize"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录