Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
HugeYuan
delve
提交
bcc4943a
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,发现更多精彩内容 >>
提交
bcc4943a
编写于
1月 14, 2015
作者:
D
Derek Parker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move breakpointIDCounter to DebuggedProcess struct
上级
d7cb4dca
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
19 deletion
+16
-19
proctl/breakpoints_linux_amd64.go
proctl/breakpoints_linux_amd64.go
+4
-4
proctl/proctl.go
proctl/proctl.go
+12
-15
未找到文件。
proctl/breakpoints_linux_amd64.go
浏览文件 @
bcc4943a
...
...
@@ -77,13 +77,13 @@ func (dbp *DebuggedProcess) setBreakpoint(tid int, addr uint64) (*BreakPoint, er
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"could not set hardware breakpoint"
)
}
breakpointIDCounter
++
dbp
.
breakpointIDCounter
++
dbp
.
HWBreakPoints
[
i
]
=
&
BreakPoint
{
FunctionName
:
fn
.
Name
,
File
:
f
,
Line
:
l
,
Addr
:
addr
,
ID
:
breakpointIDCounter
,
ID
:
dbp
.
breakpointIDCounter
,
}
return
dbp
.
HWBreakPoints
[
i
],
nil
}
...
...
@@ -98,14 +98,14 @@ func (dbp *DebuggedProcess) setBreakpoint(tid int, addr uint64) (*BreakPoint, er
if
err
!=
nil
{
return
nil
,
err
}
breakpointIDCounter
++
dbp
.
breakpointIDCounter
++
dbp
.
BreakPoints
[
addr
]
=
&
BreakPoint
{
FunctionName
:
fn
.
Name
,
File
:
f
,
Line
:
l
,
Addr
:
addr
,
OriginalData
:
originalData
,
ID
:
breakpointIDCounter
,
ID
:
dbp
.
breakpointIDCounter
,
}
return
dbp
.
BreakPoints
[
addr
],
nil
}
...
...
proctl/proctl.go
浏览文件 @
bcc4943a
...
...
@@ -20,17 +20,18 @@ import (
// Struct representing a debugged process. Holds onto pid, register values,
// process struct and process state.
type
DebuggedProcess
struct
{
Pid
int
Process
*
os
.
Process
Dwarf
*
dwarf
.
Data
GoSymTable
*
gosym
.
Table
FrameEntries
*
frame
.
FrameDescriptionEntries
HWBreakPoints
[
4
]
*
BreakPoint
// May need to change, amd64 supports 4 debug registers
BreakPoints
map
[
uint64
]
*
BreakPoint
Threads
map
[
int
]
*
ThreadContext
CurrentThread
*
ThreadContext
running
bool
halt
bool
Pid
int
Process
*
os
.
Process
Dwarf
*
dwarf
.
Data
GoSymTable
*
gosym
.
Table
FrameEntries
*
frame
.
FrameDescriptionEntries
HWBreakPoints
[
4
]
*
BreakPoint
// May need to change, amd64 supports 4 debug registers
BreakPoints
map
[
uint64
]
*
BreakPoint
Threads
map
[
int
]
*
ThreadContext
CurrentThread
*
ThreadContext
breakpointIDCounter
int
running
bool
halt
bool
}
type
ManualStopError
struct
{}
...
...
@@ -39,10 +40,6 @@ func (mse ManualStopError) Error() string {
return
"Manual stop requested"
}
var
(
breakpointIDCounter
=
0
)
func
Attach
(
pid
int
)
(
*
DebuggedProcess
,
error
)
{
dbp
,
err
:=
newDebugProcess
(
pid
,
true
)
if
err
!=
nil
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录