Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
31c1339b
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,发现更多精彩内容 >>
提交
31c1339b
编写于
3月 15, 2019
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixes #70107
上级
5a88160c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
42 deletion
+40
-42
src/vs/workbench/contrib/debug/common/debug.ts
src/vs/workbench/contrib/debug/common/debug.ts
+1
-3
src/vs/workbench/contrib/debug/electron-browser/debugSession.ts
.../workbench/contrib/debug/electron-browser/debugSession.ts
+21
-22
src/vs/workbench/contrib/debug/test/electron-browser/debugModel.test.ts
...ch/contrib/debug/test/electron-browser/debugModel.test.ts
+18
-17
未找到文件。
src/vs/workbench/contrib/debug/common/debug.ts
浏览文件 @
31c1339b
...
...
@@ -63,10 +63,8 @@ export const INTERNAL_CONSOLE_OPTIONS_SCHEMA = {
// raw
export
interface
IRawModelUpdate
{
threadId
:
number
;
sessionId
:
string
;
thread
?:
DebugProtocol
.
Thread
;
callStack
?:
DebugProtocol
.
StackFrame
[];
threads
:
DebugProtocol
.
Thread
[];
stoppedDetails
?:
IRawStoppedDetails
;
}
...
...
src/vs/workbench/contrib/debug/electron-browser/debugSession.ts
浏览文件 @
31c1339b
...
...
@@ -544,32 +544,34 @@ export class DebugSession implements IDebugSession {
}
rawUpdate
(
data
:
IRawModelUpdate
):
void
{
if
(
data
.
thread
&&
!
this
.
threads
.
has
(
data
.
threadId
))
{
// A new thread came in, initialize it.
this
.
threads
.
set
(
data
.
threadId
,
new
Thread
(
this
,
data
.
thread
.
name
,
data
.
thread
.
id
));
}
else
if
(
data
.
thread
&&
data
.
thread
.
name
)
{
// Just the thread name got updated #18244
const
thread
=
this
.
threads
.
get
(
data
.
threadId
);
if
(
thread
)
{
thread
.
name
=
data
.
thread
.
name
;
data
.
threads
.
forEach
(
thread
=>
{
if
(
!
this
.
threads
.
has
(
thread
.
id
))
{
// A new thread came in, initialize it.
this
.
threads
.
set
(
thread
.
id
,
new
Thread
(
this
,
thread
.
name
,
thread
.
id
));
}
else
if
(
thread
.
name
)
{
// Just the thread name got updated #18244
const
oldThread
=
this
.
threads
.
get
(
thread
.
id
);
if
(
oldThread
)
{
oldThread
.
name
=
thread
.
name
;
}
}
}
}
);
if
(
data
.
stoppedDetails
)
{
const
stoppedDetails
=
data
.
stoppedDetails
;
if
(
stoppedDetails
)
{
// Set the availability of the threads' callstacks depending on
// whether the thread is stopped or not
if
(
data
.
stoppedDetails
.
allThreadsStopped
)
{
if
(
stoppedDetails
.
allThreadsStopped
)
{
this
.
threads
.
forEach
(
thread
=>
{
thread
.
stoppedDetails
=
thread
.
threadId
===
data
.
threadId
?
data
.
stoppedDetails
:
{
reason
:
undefined
};
thread
.
stoppedDetails
=
thread
.
threadId
===
stoppedDetails
.
threadId
?
stoppedDetails
:
{
reason
:
undefined
};
thread
.
stopped
=
true
;
thread
.
clearCallStack
();
});
}
else
{
const
thread
=
t
his
.
threads
.
get
(
data
.
threadId
)
;
const
thread
=
t
ypeof
stoppedDetails
.
threadId
===
'
number
'
?
this
.
threads
.
get
(
stoppedDetails
.
threadId
)
:
undefined
;
if
(
thread
)
{
// One thread is stopped, only update that thread.
thread
.
stoppedDetails
=
data
.
stoppedDetails
;
thread
.
stoppedDetails
=
stoppedDetails
;
thread
.
clearCallStack
();
thread
.
stopped
=
true
;
}
...
...
@@ -580,13 +582,10 @@ export class DebugSession implements IDebugSession {
private
fetchThreads
(
stoppedDetails
?:
IRawStoppedDetails
):
Promise
<
void
>
{
return
this
.
raw
?
this
.
raw
.
threads
().
then
(
response
=>
{
if
(
response
&&
response
.
body
&&
response
.
body
.
threads
)
{
response
.
body
.
threads
.
forEach
(
thread
=>
{
this
.
model
.
rawUpdate
({
sessionId
:
this
.
getId
(),
threadId
:
thread
.
id
,
thread
,
stoppedDetails
:
stoppedDetails
&&
thread
.
id
===
stoppedDetails
.
threadId
?
stoppedDetails
:
undefined
});
this
.
model
.
rawUpdate
({
sessionId
:
this
.
getId
(),
threads
:
response
.
body
.
threads
,
stoppedDetails
});
}
})
:
Promise
.
resolve
(
undefined
);
...
...
src/vs/workbench/contrib/debug/test/electron-browser/debugModel.test.ts
浏览文件 @
31c1339b
...
...
@@ -115,11 +115,10 @@ suite('Debug - Model', () => {
assert
.
equal
(
model
.
getSessions
(
true
).
length
,
1
);
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
threadId
,
thread
:
{
threads
:
[{
id
:
threadId
,
name
:
threadName
}
}
]
});
assert
.
equal
(
session
.
getThread
(
threadId
)
!
.
name
,
threadName
);
...
...
@@ -144,26 +143,27 @@ suite('Debug - Model', () => {
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
threadId1
,
thread
:
{
threads
:
[{
id
:
threadId1
,
name
:
threadName1
}
}
]
});
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
threadId2
,
thread
:
{
threads
:
[{
id
:
threadId2
,
name
:
threadName2
}
}
]
});
// Stopped event with all threads stopped
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
threadId1
,
threads
:
[{
id
:
threadId1
,
name
:
threadName1
}],
stoppedDetails
:
{
reason
:
stoppedReason
,
threadId
:
1
,
...
...
@@ -232,26 +232,27 @@ suite('Debug - Model', () => {
// Add the threads
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
stoppedThreadId
,
thread
:
{
threads
:
[{
id
:
stoppedThreadId
,
name
:
stoppedThreadName
}
}
]
});
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
runningThreadId
,
thread
:
{
threads
:
[{
id
:
runningThreadId
,
name
:
runningThreadName
}
}
]
});
// Stopped event with only one thread stopped
model
.
rawUpdate
({
sessionId
:
session
.
getId
(),
threadId
:
stoppedThreadId
,
threads
:
[{
id
:
1
,
name
:
stoppedThreadName
}],
stoppedDetails
:
{
reason
:
stoppedReason
,
threadId
:
1
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录