2

退出 Julia 的镓调试器的命令是什么?我尝试了所有的东西,如q, Q, exit(), exit, Ctrl-c

   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0 (2016-09-19 18:14 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-apple-darwin13.4.0

julia> using Gallium

julia> include(Pkg.dir("Gallium/examples/testprograms/misc.jl"))
optional (generic function with 2 methods)

julia> Gallium.breakpoint(sinthesin,Tuple{Int64})

Locations (+: active, -: inactive, *: source):
 + sinthesin(x::Int64) at /Users/florian.oswald/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2


julia> inaloop(2)
In /Users/florian.oswald/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2
1 @noinline function sinthesin(x)
2     sin(sin(x))
3 end
4 

About to run: Main.sin
1|debug > q
In /Users/florian.oswald/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2
1 @noinline function sinthesin(x)
2     sin(sin(x))
3 end
4 

About to run: Main.sin
1|debug > 

更新

github上有一个相关问题。主要的收获是直接使用@enter func(x,y)并进入一个函数。我发现这很好用。

4

2 回答 2

2

使用 REPL 时,您可以使用finish退出当前功能。要退出调试器,您可能需要多次执行此命令。

在 Atom 中,对应的命令是Debug: Finish Function按钮。

您可以在此处找到更多命令。

更新:

每当到达程序中的某个点时,断点就会暂停程序。在您的示例中,inaloop(2)将调用sinthesin两次,因此单个qCtrl+d不足以退出调试器。我认为这是预期的行为,请看以下示例:

julia> bp = Gallium.breakpoint(sinthesin,Tuple{Int64})
Locations (+: active, -: inactive, *: source):
 + sinthesin(x::Int64) at /Users/gnimuc/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2


julia> inaloop(2)
In /Users/gnimuc/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2
1 @noinline function sinthesin(x)
2     sin(sin(x))
3 end
4 

About to run: Main.sin
1|debug > q
In /Users/gnimuc/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2
1 @noinline function sinthesin(x)
2     sin(sin(x))
3 end
4 

About to run: Main.sin
1|debug > q

julia> 

julia> Gallium.disable(bp)
true

julia> @enter inaloop(2)
In /Users/gnimuc/.julia/v0.5/Gallium/examples/testprograms/misc.jl:6
5 @noinline function inaloop(y)
6     for i = 1:y
7   sinthesin(i)
8     end

About to run: (colon)(1,2)
1|debug > q
于 2016-10-14T09:48:53.393 回答
1

添加到 Gnimuc 的答案中,您还应该能够使用q命令退出调试器。

这里

const all_commands = ("q", "s", "si", "finish", "bt", "loc", "ind", "shadow",
        "up", "down", "ns", "nc", "n", "se")
于 2016-10-14T13:11:47.910 回答