Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
49cc9aed
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
49cc9aed
编写于
2月 18, 2016
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debug: log adapter crashes to adapter telemtry buckets as well
上级
77612d1f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
19 deletion
+17
-19
src/vs/workbench/parts/debug/electron-browser/debugService.ts
...vs/workbench/parts/debug/electron-browser/debugService.ts
+12
-17
src/vs/workbench/parts/debug/node/rawDebugSession.ts
src/vs/workbench/parts/debug/node/rawDebugSession.ts
+5
-2
未找到文件。
src/vs/workbench/parts/debug/electron-browser/debugService.ts
浏览文件 @
49cc9aed
...
...
@@ -5,7 +5,6 @@
import
nls
=
require
(
'
vs/nls
'
);
import
lifecycle
=
require
(
'
vs/base/common/lifecycle
'
);
import
Objects
=
require
(
'
vs/base/common/objects
'
);
import
mime
=
require
(
'
vs/base/common/mime
'
);
import
ee
=
require
(
'
vs/base/common/eventEmitter
'
);
import
uri
from
'
vs/base/common/uri
'
;
...
...
@@ -72,7 +71,6 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
private
lastTaskEvent
:
TaskEvent
;
private
toDispose
:
lifecycle
.
IDisposable
[];
private
inDebugMode
:
IKeybindingContextKey
<
boolean
>
;
private
telemetryInfo
:
any
;
constructor
(
@
IStorageService
private
storageService
:
IStorageService
,
...
...
@@ -113,12 +111,6 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
this
.
viewModel
=
new
viewmodel
.
ViewModel
();
this
.
registerListeners
(
eventService
,
lifecycleService
);
this
.
telemetryInfo
=
Object
.
create
(
null
);
this
.
telemetryService
.
getTelemetryInfo
().
then
(
info
=>
{
this
.
telemetryInfo
[
'
common.vscodemachineid
'
]
=
info
.
machineId
;
this
.
telemetryInfo
[
'
common.vscodesessionid
'
]
=
info
.
sessionId
;
});
}
private
registerListeners
(
eventService
:
IEventService
,
lifecycleService
:
ILifecycleService
):
void
{
...
...
@@ -287,7 +279,7 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
this
.
toDispose
.
push
(
this
.
session
.
addListener2
(
debug
.
SessionEvents
.
DEBUGEE_TERMINATED
,
(
event
:
DebugProtocol
.
TerminatedEvent
)
=>
{
aria
.
alert
(
nls
.
localize
(
'
programTerminated
'
,
"
Program terminated.
"
));
if
(
this
.
session
&&
this
.
session
.
getId
()
===
(
<
any
>
event
).
sessionId
)
{
if
(
event
.
body
&&
typeof
event
.
body
.
restart
==
'
boolean
'
&&
event
.
body
.
restart
)
{
if
(
event
.
body
&&
typeof
event
.
body
.
restart
==
=
'
boolean
'
&&
event
.
body
.
restart
)
{
this
.
restartSession
().
done
(
null
,
errors
.
onUnexpectedError
);
}
else
{
this
.
session
.
disconnect
().
done
(
null
,
errors
.
onUnexpectedError
);
...
...
@@ -297,14 +289,9 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
this
.
toDispose
.
push
(
this
.
session
.
addListener2
(
debug
.
SessionEvents
.
OUTPUT
,
(
event
:
DebugProtocol
.
OutputEvent
)
=>
{
if
(
event
.
body
&&
event
.
body
.
category
===
'
telemetry
'
)
{
const
key
=
this
.
configurationManager
.
getAdapter
().
aiKey
;
// only log telemetry events from debug adapter if the adapter provided the telemetry key
if
(
key
)
{
if
(
!
this
.
telemetryAdapter
)
{
this
.
telemetryAdapter
=
new
AIAdapter
(
key
,
this
.
session
.
getType
());
}
let
data
=
Objects
.
mixin
(
event
.
body
.
data
,
this
.
telemetryInfo
);
this
.
telemetryAdapter
.
log
(
event
.
body
.
output
,
data
);
if
(
this
.
telemetryAdapter
)
{
this
.
telemetryAdapter
.
log
(
event
.
body
.
output
,
event
.
body
.
data
);
}
}
else
if
(
event
.
body
&&
typeof
event
.
body
.
output
===
'
string
'
&&
event
.
body
.
output
.
length
>
0
)
{
this
.
onOutput
(
event
);
...
...
@@ -567,7 +554,15 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
}
private
doCreateSession
(
configuration
:
debug
.
IConfig
,
openViewlet
:
boolean
):
TPromise
<
any
>
{
this
.
session
=
new
session
.
RawDebugSession
(
this
.
messageService
,
this
.
telemetryService
,
configuration
.
debugServer
,
this
.
configurationManager
.
getAdapter
());
const
key
=
this
.
configurationManager
.
getAdapter
().
aiKey
;
const
telemetryInfo
=
Object
.
create
(
null
);
this
.
telemetryService
.
getTelemetryInfo
().
then
(
info
=>
{
telemetryInfo
[
'
common.vscodemachineid
'
]
=
info
.
machineId
;
telemetryInfo
[
'
common.vscodesessionid
'
]
=
info
.
sessionId
;
},
errors
.
onUnexpectedError
);
this
.
telemetryAdapter
=
new
AIAdapter
(
key
,
this
.
configurationManager
.
getAdapter
().
type
,
null
,
telemetryInfo
);
this
.
session
=
new
session
.
RawDebugSession
(
this
.
messageService
,
this
.
telemetryService
,
configuration
.
debugServer
,
this
.
configurationManager
.
getAdapter
(),
this
.
telemetryAdapter
);
this
.
registerSessionListeners
();
return
this
.
session
.
initialize
({
...
...
src/vs/workbench/parts/debug/node/rawDebugSession.ts
浏览文件 @
49cc9aed
...
...
@@ -11,6 +11,7 @@ import platform = require('vs/base/common/platform');
import
errors
=
require
(
'
vs/base/common/errors
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
severity
from
'
vs/base/common/severity
'
;
import
{
AIAdapter
}
from
'
vs/base/node/aiAdapter
'
;
import
debug
=
require
(
'
vs/workbench/parts/debug/common/debug
'
);
import
{
Adapter
}
from
'
vs/workbench/parts/debug/node/debugAdapter
'
;
import
v8
=
require
(
'
vs/workbench/parts/debug/node/v8Protocol
'
);
...
...
@@ -31,7 +32,8 @@ export class RawDebugSession extends v8.V8Protocol implements debug.IRawDebugSes
private
messageService
:
IMessageService
,
private
telemetryService
:
ITelemetryService
,
private
debugServerPort
:
number
,
private
adapter
:
Adapter
private
adapter
:
Adapter
,
private
telemtryAdapter
:
AIAdapter
)
{
super
();
this
.
capabilities
=
{};
...
...
@@ -59,7 +61,8 @@ export class RawDebugSession extends v8.V8Protocol implements debug.IRawDebugSes
const
error
=
errorResponse
.
body
?
errorResponse
.
body
.
error
:
null
;
const
message
=
error
?
debug
.
formatPII
(
error
.
format
,
false
,
error
.
variables
)
:
errorResponse
.
message
;
if
(
error
&&
error
.
sendTelemetry
)
{
this
.
telemetryService
.
publicLog
(
'
debugProtocolErrorResponse
'
,
{
error
:
message
});
this
.
telemetryService
.
publicLog
(
'
debugProtocolErrorResponse
'
,
{
error
:
message
});
this
.
telemtryAdapter
.
log
(
'
debugProtocolErrorResponse
'
,
{
error
:
message
});
}
return
TPromise
.
wrapError
(
new
Error
(
message
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录