Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
88e80b9a
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,发现更多精彩内容 >>
未验证
提交
88e80b9a
编写于
12月 04, 2019
作者:
C
Connor Peet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debug: restart as extension host if any parent is an extension host
上级
d3cda21f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
14 deletion
+25
-14
src/vs/workbench/contrib/debug/browser/debugService.ts
src/vs/workbench/contrib/debug/browser/debugService.ts
+7
-5
src/vs/workbench/contrib/debug/common/debugUtils.ts
src/vs/workbench/contrib/debug/common/debugUtils.ts
+18
-9
未找到文件。
src/vs/workbench/contrib/debug/browser/debugService.ts
浏览文件 @
88e80b9a
...
...
@@ -41,7 +41,7 @@ import { deepClone, equals } from 'vs/base/common/objects';
import
{
DebugSession
}
from
'
vs/workbench/contrib/debug/browser/debugSession
'
;
import
{
dispose
,
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
IDebugService
,
State
,
IDebugSession
,
CONTEXT_DEBUG_TYPE
,
CONTEXT_DEBUG_STATE
,
CONTEXT_IN_DEBUG_MODE
,
IThread
,
IDebugConfiguration
,
VIEWLET_ID
,
REPL_ID
,
IConfig
,
ILaunch
,
IViewModel
,
IConfigurationManager
,
IDebugModel
,
IEnablement
,
IBreakpoint
,
IBreakpointData
,
ICompound
,
IGlobalConfig
,
IStackFrame
,
AdapterEndEvent
,
getStateLabel
,
IDebugSessionOptions
,
CONTEXT_DEBUG_UX
}
from
'
vs/workbench/contrib/debug/common/debug
'
;
import
{
isExtensionHostDebugging
}
from
'
vs/workbench/contrib/debug/common/debugUtils
'
;
import
{
getExtensionHostDebugSession
}
from
'
vs/workbench/contrib/debug/common/debugUtils
'
;
import
{
isErrorWithActions
,
createErrorWithActions
}
from
'
vs/base/common/errorsWithActions
'
;
import
{
RunOnceScheduler
}
from
'
vs/base/common/async
'
;
import
{
IExtensionHostDebugService
}
from
'
vs/platform/debug/common/extensionHostDebug
'
;
...
...
@@ -539,8 +539,9 @@ export class DebugService implements IDebugService {
}
// 'Run without debugging' mode VSCode must terminate the extension host. More details: #3905
if
(
isExtensionHostDebugging
(
session
.
configuration
)
&&
session
.
state
===
State
.
Running
&&
session
.
configuration
.
noDebug
)
{
this
.
extensionHostDebugService
.
close
(
session
.
getId
());
const
extensionDebugSession
=
getExtensionHostDebugSession
(
session
);
if
(
extensionDebugSession
&&
extensionDebugSession
.
state
===
State
.
Running
&&
extensionDebugSession
.
configuration
.
noDebug
)
{
this
.
extensionHostDebugService
.
close
(
extensionDebugSession
.
getId
());
}
this
.
telemetryDebugSessionStop
(
session
,
adapterExitEvent
);
...
...
@@ -590,10 +591,11 @@ export class DebugService implements IDebugService {
return
this
.
runTaskAndCheckErrors
(
session
.
root
,
session
.
configuration
.
preLaunchTask
);
};
if
(
isExtensionHostDebugging
(
session
.
configuration
))
{
const
extensionDebugSession
=
getExtensionHostDebugSession
(
session
);
if
(
extensionDebugSession
)
{
const
taskResult
=
await
runTasks
();
if
(
taskResult
===
TaskRunResult
.
Success
)
{
this
.
extensionHostDebugService
.
reload
(
s
ession
.
getId
());
this
.
extensionHostDebugService
.
reload
(
extensionDebugS
ession
.
getId
());
}
return
;
...
...
src/vs/workbench/contrib/debug/common/debugUtils.ts
浏览文件 @
88e80b9a
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
{
equalsIgnoreCase
}
from
'
vs/base/common/strings
'
;
import
{
I
Config
,
I
DebuggerContribution
,
IDebugSession
}
from
'
vs/workbench/contrib/debug/common/debug
'
;
import
{
IDebuggerContribution
,
IDebugSession
}
from
'
vs/workbench/contrib/debug/common/debug
'
;
import
{
URI
as
uri
}
from
'
vs/base/common/uri
'
;
import
{
isAbsolute
}
from
'
vs/base/common/path
'
;
import
{
deepClone
}
from
'
vs/base/common/objects
'
;
...
...
@@ -24,19 +24,28 @@ export function formatPII(value: string, excludePII: boolean, args: { [key: stri
}
export
function
isSessionAttach
(
session
:
IDebugSession
):
boolean
{
return
!
session
.
parentSession
&&
session
.
configuration
.
request
===
'
attach
'
&&
!
isExtensionHostDebugging
(
session
.
configurat
ion
);
return
!
session
.
parentSession
&&
session
.
configuration
.
request
===
'
attach
'
&&
!
getExtensionHostDebugSession
(
sess
ion
);
}
export
function
isExtensionHostDebugging
(
config
:
IConfig
)
{
if
(
!
config
.
type
)
{
return
false
;
/**
* Returns the session or any parent which is an extension host debug session.
* Returns undefined if there's none.
*/
export
function
getExtensionHostDebugSession
(
session
:
IDebugSession
):
IDebugSession
|
void
{
let
type
=
session
.
configuration
.
type
;
if
(
!
type
)
{
return
;
}
const
type
=
config
.
type
===
'
vslsShare
'
?
(
<
any
>
config
).
adapterProxy
.
configuration
.
type
:
config
.
type
;
if
(
type
===
'
vslsShare
'
)
{
type
=
(
<
any
>
session
.
configuration
).
adapterProxy
.
configuration
.
type
;
}
if
(
equalsIgnoreCase
(
type
,
'
extensionhost
'
)
||
equalsIgnoreCase
(
type
,
'
pwa-extensionhost
'
))
{
return
session
;
}
return
equalsIgnoreCase
(
type
,
'
extensionhost
'
)
||
equalsIgnoreCase
(
type
,
'
pwa-extensionhost
'
)
;
return
session
.
parentSession
?
getExtensionHostDebugSession
(
session
.
parentSession
)
:
undefined
;
}
// only a debugger contributions with a label, program, or runtime attribute is considered a "defining" or "main" debugger contribution
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录