Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pubx
delve
提交
4e43b0f8
D
delve
项目概览
pubx
/
delve
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
delve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4e43b0f8
编写于
3月 08, 2015
作者:
D
Derek Parker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use subcommands instead of flags
上级
11405314
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
17 deletion
+29
-17
README.md
README.md
+2
-2
client/cli/cli.go
client/cli/cli.go
+9
-4
cmd/dlv/main.go
cmd/dlv/main.go
+18
-11
未找到文件。
README.md
浏览文件 @
4e43b0f8
...
...
@@ -50,7 +50,7 @@ The debugger can be launched in three ways:
*
Compile, run, and attach in one step:
```
$ dlv
-
run
$ dlv run
```
*
Provide the name of the program you want to debug, and the debugger will launch it for you.
...
...
@@ -62,7 +62,7 @@ The debugger can be launched in three ways:
*
Provide the pid of a currently running process, and the debugger will attach and begin the session.
```
$ sudo dlv
-pid
44839
$ sudo dlv
attach
44839
```
### Breakpoints
...
...
client/cli/cli.go
浏览文件 @
4e43b0f8
...
...
@@ -7,6 +7,7 @@ import (
"os/exec"
"os/signal"
"strings"
"strconv"
sys
"golang.org/x/sys/unix"
...
...
@@ -18,7 +19,7 @@ import (
const
historyFile
string
=
".dbg_history"
func
Run
(
run
bool
,
pid
int
,
args
[]
string
)
{
func
Run
(
args
[]
string
)
{
var
(
dbp
*
proctl
.
DebuggedProcess
err
error
...
...
@@ -26,8 +27,8 @@ func Run(run bool, pid int, args []string) {
)
defer
line
.
Close
()
switch
{
case
run
:
switch
args
[
0
]
{
case
"run"
:
const
debugname
=
"debug"
cmd
:=
exec
.
Command
(
"go"
,
"build"
,
"-o"
,
debugname
,
"-gcflags"
,
"-N -l"
)
err
:=
cmd
.
Run
()
...
...
@@ -40,7 +41,11 @@ func Run(run bool, pid int, args []string) {
if
err
!=
nil
{
die
(
1
,
"Could not launch program:"
,
err
)
}
case
pid
!=
0
:
case
"attach"
:
pid
,
err
:=
strconv
.
Atoi
(
args
[
1
])
if
err
!=
nil
{
die
(
1
,
"Invalid pid"
,
args
[
1
])
}
dbp
,
err
=
proctl
.
Attach
(
pid
)
if
err
!=
nil
{
die
(
1
,
"Could not attach to process:"
,
err
)
...
...
cmd/dlv/main.go
浏览文件 @
4e43b0f8
...
...
@@ -11,6 +11,20 @@ import (
const
version
string
=
"0.5.0.beta"
var
usage
string
=
fmt
.
Sprintf
(
`Delve version %s
flags:
-v - Print version
Invoke with the path to a binary:
dlv ./path/to/prog
or use the following commands:
run - Build, run, and attach to program
attach - Attach to running process
`
,
version
)
func
init
()
{
// We must ensure here that we are running on the same thread during
// the execution of dbg. This is due to the fact that ptrace(2) expects
...
...
@@ -19,19 +33,12 @@ func init() {
}
func
main
()
{
var
(
pid
int
run
bool
printv
bool
)
flag
.
IntVar
(
&
pid
,
"pid"
,
0
,
"Pid of running process to attach to."
)
flag
.
BoolVar
(
&
run
,
"run"
,
false
,
"Compile program and begin debug session."
)
flag
.
BoolVar
(
&
printv
,
"v"
,
false
,
"Print version number and exit."
)
var
printv
bool
flag
.
Parse
()
if
flag
.
NFlag
()
==
0
&&
len
(
flag
.
Args
())
==
0
{
f
lag
.
Usage
(
)
f
mt
.
Println
(
usage
)
os
.
Exit
(
0
)
}
...
...
@@ -40,5 +47,5 @@ func main() {
os
.
Exit
(
0
)
}
cli
.
Run
(
run
,
pid
,
flag
.
Args
()
)
cli
.
Run
(
os
.
Args
[
1
:
]
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录