Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
HugeYuan
delve
提交
1b4c3183
D
delve
项目概览
HugeYuan
/
delve
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
delve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1b4c3183
编写于
9月 26, 2018
作者:
C
chainhelen
提交者:
Derek Parker
9月 26, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pkg/proc: use method not duplicate code
Use IsInternal and IsUser of Breakpoint, not duplicate code
上级
3a943138
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
5 deletion
+5
-5
pkg/proc/breakpoints.go
pkg/proc/breakpoints.go
+5
-5
未找到文件。
pkg/proc/breakpoints.go
浏览文件 @
1b4c3183
...
...
@@ -118,7 +118,7 @@ func (bp *Breakpoint) CheckCondition(thread Thread) BreakpointState {
bpstate
:=
BreakpointState
{
Breakpoint
:
bp
,
Active
:
false
,
Internal
:
false
,
CondError
:
nil
}
if
bp
.
Cond
==
nil
&&
bp
.
internalCond
==
nil
{
bpstate
.
Active
=
true
bpstate
.
Internal
=
bp
.
Kind
!=
UserBreakpoint
bpstate
.
Internal
=
bp
.
IsInternal
()
return
bpstate
}
nextDeferOk
:=
true
...
...
@@ -138,7 +138,7 @@ func (bp *Breakpoint) CheckCondition(thread Thread) BreakpointState {
nextDeferOk
=
ispanic
||
isdeferreturn
}
}
if
bp
.
Kind
!=
UserBreakpoint
{
if
bp
.
IsInternal
()
{
// Check internalCondition if this is also an internal breakpoint
bpstate
.
Active
,
bpstate
.
CondError
=
evalBreakpointCondition
(
thread
,
bp
.
internalCond
)
bpstate
.
Active
=
bpstate
.
Active
&&
nextDeferOk
...
...
@@ -147,7 +147,7 @@ func (bp *Breakpoint) CheckCondition(thread Thread) BreakpointState {
return
bpstate
}
}
if
bp
.
Kind
&
UserBreakpoint
!=
0
{
if
bp
.
IsUser
()
{
// Check normal condition if this is also a user breakpoint
bpstate
.
Active
,
bpstate
.
CondError
=
evalBreakpointCondition
(
thread
,
bp
.
Cond
)
}
...
...
@@ -231,7 +231,7 @@ func (bpmap *BreakpointMap) Set(addr uint64, kind BreakpointKind, cond ast.Expr,
// We can overlap one internal breakpoint with one user breakpoint, we
// need to support this otherwise a conditional breakpoint can mask a
// breakpoint set by next or step.
if
(
kind
!=
UserBreakpoint
&&
bp
.
Kind
!=
UserBreakpoint
)
||
(
kind
==
UserBreakpoint
&&
bp
.
Kind
&
UserBreakpoint
!=
0
)
{
if
(
kind
!=
UserBreakpoint
&&
bp
.
Kind
!=
UserBreakpoint
)
||
(
kind
==
UserBreakpoint
&&
bp
.
IsUser
()
)
{
return
bp
,
BreakpointExistsError
{
bp
.
File
,
bp
.
Line
,
bp
.
Addr
}
}
bp
.
Kind
|=
kind
...
...
@@ -330,7 +330,7 @@ func (bpmap *BreakpointMap) ClearInternalBreakpoints(clearBreakpoint clearBreakp
// breakpoint set.
func
(
bpmap
*
BreakpointMap
)
HasInternalBreakpoints
()
bool
{
for
_
,
bp
:=
range
bpmap
.
M
{
if
bp
.
Kind
!=
UserBreakpoint
{
if
bp
.
IsInternal
()
{
return
true
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录