Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
40d95595
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,发现更多精彩内容 >>
提交
40d95595
编写于
2月 07, 2020
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Breakpoints allow to move to different sources on update
fixes #89756
上级
d7eac676
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
30 deletion
+38
-30
src/vs/workbench/contrib/debug/common/debugModel.ts
src/vs/workbench/contrib/debug/common/debugModel.ts
+9
-3
src/vs/workbench/contrib/debug/common/debugSource.ts
src/vs/workbench/contrib/debug/common/debugSource.ts
+29
-27
未找到文件。
src/vs/workbench/contrib/debug/common/debugModel.ts
浏览文件 @
40d95595
...
...
@@ -17,7 +17,7 @@ import {
ITreeElement
,
IExpression
,
IExpressionContainer
,
IDebugSession
,
IStackFrame
,
IExceptionBreakpoint
,
IBreakpoint
,
IFunctionBreakpoint
,
IDebugModel
,
IThread
,
IRawModelUpdate
,
IScope
,
IRawStoppedDetails
,
IEnablement
,
IBreakpointData
,
IExceptionInfo
,
IBreakpointsChangeEvent
,
IBreakpointUpdateData
,
IBaseBreakpoint
,
State
,
IDataBreakpoint
}
from
'
vs/workbench/contrib/debug/common/debug
'
;
import
{
Source
,
UNKNOWN_SOURCE_LABEL
}
from
'
vs/workbench/contrib/debug/common/debugSource
'
;
import
{
Source
,
UNKNOWN_SOURCE_LABEL
,
getUriFromSource
}
from
'
vs/workbench/contrib/debug/common/debugSource
'
;
import
{
commonSuffixLength
}
from
'
vs/base/common/strings
'
;
import
{
posix
}
from
'
vs/base/common/path
'
;
import
{
IEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
...
...
@@ -515,6 +515,7 @@ interface IBreakpointSessionData extends DebugProtocol.Breakpoint {
supportsLogPoints
:
boolean
;
supportsFunctionBreakpoints
:
boolean
;
supportsDataBreakpoints
:
boolean
;
sessionId
:
string
;
}
function
toBreakpointSessionData
(
data
:
DebugProtocol
.
Breakpoint
,
capabilities
:
DebugProtocol
.
Capabilities
):
IBreakpointSessionData
{
...
...
@@ -549,6 +550,7 @@ export abstract class BaseBreakpoint extends Enablement implements IBaseBreakpoi
if
(
!
data
)
{
this
.
sessionData
.
delete
(
sessionId
);
}
else
{
data
.
sessionId
=
sessionId
;
this
.
sessionData
.
set
(
sessionId
,
data
);
}
...
...
@@ -596,7 +598,7 @@ export abstract class BaseBreakpoint extends Enablement implements IBaseBreakpoi
export
class
Breakpoint
extends
BaseBreakpoint
implements
IBreakpoint
{
constructor
(
p
ublic
uri
:
uri
,
p
rivate
_
uri
:
uri
,
private
_lineNumber
:
number
,
private
_column
:
number
|
undefined
,
enabled
:
boolean
,
...
...
@@ -616,12 +618,16 @@ export class Breakpoint extends BaseBreakpoint implements IBreakpoint {
get
verified
():
boolean
{
if
(
this
.
data
)
{
return
this
.
data
.
verified
&&
!
this
.
textFileService
.
isDirty
(
this
.
uri
);
return
this
.
data
.
verified
&&
!
this
.
textFileService
.
isDirty
(
this
.
_
uri
);
}
return
true
;
}
get
uri
():
uri
{
return
this
.
verified
&&
this
.
data
&&
this
.
data
.
source
?
getUriFromSource
(
this
.
data
.
source
,
this
.
data
.
source
.
path
,
this
.
data
.
sessionId
)
:
this
.
_uri
;
}
get
column
():
number
|
undefined
{
return
this
.
verified
&&
this
.
data
&&
typeof
this
.
data
.
column
===
'
number
'
?
this
.
data
.
column
:
this
.
_column
;
}
...
...
src/vs/workbench/contrib/debug/common/debugSource.ts
浏览文件 @
40d95595
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
nls
from
'
vs/nls
'
;
import
{
URI
as
uri
}
from
'
vs/base/common/uri
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
normalize
,
isAbsolute
}
from
'
vs/base/common/path
'
;
import
*
as
resources
from
'
vs/base/common/resources
'
;
import
{
DEBUG_SCHEME
}
from
'
vs/workbench/contrib/debug/common/debug
'
;
...
...
@@ -32,7 +32,7 @@ export const UNKNOWN_SOURCE_LABEL = nls.localize('unknownSource', "Unknown Sourc
export
class
Source
{
readonly
uri
:
uri
;
readonly
uri
:
URI
;
available
:
boolean
;
raw
:
DebugProtocol
.
Source
;
...
...
@@ -48,30 +48,7 @@ export class Source {
path
=
`
${
DEBUG_SCHEME
}
:
${
UNKNOWN_SOURCE_LABEL
}
`
;
}
if
(
typeof
this
.
raw
.
sourceReference
===
'
number
'
&&
this
.
raw
.
sourceReference
>
0
)
{
this
.
uri
=
uri
.
from
({
scheme
:
DEBUG_SCHEME
,
path
,
query
:
`session=
${
sessionId
}
&ref=
${
this
.
raw
.
sourceReference
}
`
});
}
else
{
if
(
isUri
(
path
))
{
// path looks like a uri
this
.
uri
=
uri
.
parse
(
path
);
}
else
{
// assume a filesystem path
if
(
isAbsolute
(
path
))
{
this
.
uri
=
uri
.
file
(
path
);
}
else
{
// path is relative: since VS Code cannot deal with this by itself
// create a debug url that will result in a DAP 'source' request when the url is resolved.
this
.
uri
=
uri
.
from
({
scheme
:
DEBUG_SCHEME
,
path
,
query
:
`session=
${
sessionId
}
`
});
}
}
}
this
.
uri
=
getUriFromSource
(
this
.
raw
,
path
,
sessionId
);
}
get
name
()
{
...
...
@@ -108,7 +85,7 @@ export class Source {
},
sideBySide
?
SIDE_GROUP
:
ACTIVE_GROUP
);
}
static
getEncodedDebugData
(
modelUri
:
uri
):
{
name
:
string
,
path
:
string
,
sessionId
?:
string
,
sourceReference
?:
number
}
{
static
getEncodedDebugData
(
modelUri
:
URI
):
{
name
:
string
,
path
:
string
,
sessionId
?:
string
,
sourceReference
?:
number
}
{
let
path
:
string
;
let
sourceReference
:
number
|
undefined
;
let
sessionId
:
string
|
undefined
;
...
...
@@ -149,3 +126,28 @@ export class Source {
};
}
}
export
function
getUriFromSource
(
raw
:
DebugProtocol
.
Source
,
path
:
string
|
undefined
,
sessionId
:
string
):
URI
{
if
(
typeof
raw
.
sourceReference
===
'
number
'
&&
raw
.
sourceReference
>
0
)
{
return
URI
.
from
({
scheme
:
DEBUG_SCHEME
,
path
,
query
:
`session=
${
sessionId
}
&ref=
${
raw
.
sourceReference
}
`
});
}
if
(
path
&&
isUri
(
path
))
{
// path looks like a uri
return
URI
.
parse
(
path
);
}
// assume a filesystem path
if
(
path
&&
isAbsolute
(
path
))
{
return
URI
.
file
(
path
);
}
// path is relative: since VS Code cannot deal with this by itself
// create a debug url that will result in a DAP 'source' request when the url is resolved.
return
URI
.
from
({
scheme
:
DEBUG_SCHEME
,
path
,
query
:
`session=
${
sessionId
}
`
});
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录