# New Julia debugger in Juno

**URL:** https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359
**Category:** Juno
**Tags:** debug
**Created:** [March 26, 2019, 4:09pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359 "2019-03-26T16:09:14Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 4:09pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/1 "2019-03-26T16:09:14Z")

</div>

Anybody noticed this?

> **[A Julia interpreter and debugger](https://julialang.org/blog/2019/03/debuggers/)**
>
> A Julia interpreter and debugger | The authors are pleased to announce the release of a fully-featured...

I was very excited, but after updating / adding all packages they mentioned in the article, I still cannot make GUI debugger in Juno work.

I tried both Julia 1.0.3 and 1.1.0 (both standard version, not JuliaPro). Some packages mentioned cannot be updated in Julia 1.0.3. But whatever I do, Juno.@run wouldn’t work.

julia\> Juno.@run main()  
ERROR: LoadError: UndefVarError: @run not defined  
in expression starting at none:1

Can anybody help? Thanks!

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [March 26, 2019, 4:13pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/2 "2019-03-26T16:13:20Z")

</div>

What version of the Julia packages are you running (try `pkg> status` in the REPL)? Make sure you’re on Juno.jl 0.7.0 and Atom.jl 0.8.2.

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 4:23pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/3 "2019-03-26T16:23:42Z")

</div>

Thanks.

I installed Atom in standalone (1.35.1 x64), then installed Uber Juno, and points it to one of the 2 Julia installations (1.0.3 and 1.1.0).

Using my 1.1.0 as an example, my Juno.jl is at v0.5.4, and my Atom.jl is at v0.7.14. I tried updating them but got this error message:

(v1.1) pkg\> update Juno  
Updating registry at `C:\Users\zpan\.julia\registries\General`  
Updating git-repo `https://github.com/JuliaRegistries/General.git`  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package ASTInterpreter2 [e6d88f4b]:  
ASTInterpreter2 [e6d88f4b] log:  
├─possible versions are: 0.1.0-0.1.1 or uninstalled  
├─restricted by julia compatibility requirements to versions: uninstalled  
└─restricted by compatibility requirements with Atom [c52e3926] to versions: 0.1.0-0.1.1 — no versions left  
└─Atom [c52e3926] log:  
├─possible versions are: [0.1.0-0.1.1, 0.2.0-0.2.1, 0.3.0, 0.4.0-0.4.6, 0.5.0-0.5.10, 0.6.0-0.6.17, 0.7.0-0.7.15, 0.8.0-0.8.2] or uninstalled  
└─restricted to versions 0.7.14 by an explicit requirement, leaving only versions 0.7.14

(v1.1) pkg\> update Atom  
Updating registry at `C:\Users\zpan\.julia\registries\General`  
Updating git-repo `https://github.com/JuliaRegistries/General.git`  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package ASTInterpreter2 [e6d88f4b]:  
ASTInterpreter2 [e6d88f4b] log:  
├─possible versions are: 0.1.0-0.1.1 or uninstalled  
├─restricted by julia compatibility requirements to versions: uninstalled  
└─restricted by compatibility requirements with Atom [c52e3926] to versions: 0.1.0-0.1.1 — no versions left  
└─Atom [c52e3926] log:  
├─possible versions are: [0.1.0-0.1.1, 0.2.0-0.2.1, 0.3.0, 0.4.0-0.4.6, 0.5.0-0.5.10, 0.6.0-0.6.17, 0.7.0-0.7.15, 0.8.0-0.8.2] or uninstalled  
├─restricted to versions \* by an explicit requirement, leaving only versions [0.1.0-0.1.1, 0.2.0-0.2.1, 0.3.0, 0.4.0-0.4.6, 0.5.0-0.5.10, 0.6.0-0.6.17, 0.7.0-0.7.15, 0.8.0-0.8.2]  
├─restricted by julia compatibility requirements to versions: [0.7.0-0.7.15, 0.8.0-0.8.2] or uninstalled, leaving only versions: [0.7.0-0.7.15, 0.8.0-0.8.2]  
└─restricted by compatibility requirements with Juno [e5e0dc1b] to versions: [0.1.0-0.1.1, 0.2.0-0.2.1, 0.3.0, 0.4.0-0.4.6, 0.5.0-0.5.10, 0.6.0-0.6.17, 0.7.0-0.7.15] or uninstalled, leaving only versions: 0.7.0-0.7.15  
└─Juno [e5e0dc1b] log:  
├─possible versions are: [0.1.0, 0.2.0-0.2.7, 0.3.0-0.3.2, 0.4.0-0.4.1, 0.5.0-0.5.5, 0.6.0, 0.7.0] or uninstalled  
└─restricted to versions 0.5.4 by an explicit requirement, leaving only versions 0.5.4

If I try to add ASTInterpreter 2 (which is a surprise as I thought JuliaInterpreter replaced it), I got this:

(v1.1) pkg\> add ASTInterpreter2  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package DebuggerFramework [67417a49]:  
DebuggerFramework [67417a49] log:  
├─possible versions are: 0.1.0-0.1.2 or uninstalled  
├─restricted to versions \* by ASTInterpreter2 [e6d88f4b], leaving only versions 0.1.0-0.1.2  
│ └─ASTInterpreter2 [e6d88f4b] log:  
│ ├─possible versions are: 0.1.1 or uninstalled  
│ └─ASTInterpreter2 [e6d88f4b] is fixed to version 0.1.1  
└─restricted by julia compatibility requirements to versions: uninstalled — no versions left

(v1.1) pkg\> add DebuggerFramework  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package ASTInterpreter2 [e6d88f4b]:  
ASTInterpreter2 [e6d88f4b] log:  
├─possible versions are: 0.1.0-0.1.1 or uninstalled  
├─restricted by julia compatibility requirements to versions: uninstalled  
└─restricted by compatibility requirements with Atom [c52e3926] to versions: 0.1.0-0.1.1 — no versions left  
└─Atom [c52e3926] log:  
├─possible versions are: [0.1.0-0.1.1, 0.2.0-0.2.1, 0.3.0, 0.4.0-0.4.6, 0.5.0-0.5.10, 0.6.0-0.6.17, 0.7.0-0.7.15, 0.8.0-0.8.2] or uninstalled  
└─restricted to versions 0.7.14 by an explicit requirement, leaving only versions 0.7.14

Any clue? Thanks!

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [March 26, 2019, 4:24pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/4 "2019-03-26T16:24:28Z")

</div>

Do

```julia
rm -m DebuggerFramework ASTInterpreter2

```

in the Pkg REPL mode. Then reinstall things.

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 4:37pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/5 "2019-03-26T16:37:55Z")

</div>

First, I’m grateful that you guys are answering questions online!

I tried this but still got error messages.

(v1.1) pkg\> rm -m DebuggerFramework ASTInterpreter2  
Updating `C:\Users\zpan\.julia\environments\v1.1\Project.toml`  
[c52e3926] - Atom v0.7.14  
Updating `C:\Users\zpan\.julia\environments\v1.1\Manifest.toml`  
[e6d88f4b] - ASTInterpreter2 v0.1.1 #master ([GitHub - JuliaDebug/ASTInterpreter2.jl: Re-write of ASTInterpreter for julia 0.6+](https://github.com/Keno/ASTInterpreter2.jl.git))  
[c52e3926] - Atom v0.7.14  
[7057c7e9] - Cassette v0.2.2  
[53a63b46] - CodeTools v0.6.4  
[67417a49] - DebuggerFramework v0.1.2+ #master ([https://github.com/Keno/DebuggerFramework.jl.git](https://github.com/Keno/DebuggerFramework.jl.git))  
[33d173f1] - DocSeeker v0.2.0  
[cd3eb016] - HTTP v0.8.0  
[9fb69e20] - Hiccup v0.2.2  
[83e8ac13] - IniFile v0.5.0  
[7c4cb9fa] - LNR v0.2.0  
[50d2b5c4] - Lazy v0.13.2  
[739be429] - MbedTLS v0.6.8  
[88034a9c] - StringDistances v0.3.1  
[37b6cedf] - Traceur v0.3.0  
[104b5d7c] - WebSockets v1.5.2

(v1.1) pkg\> add DebuggerFramework  
Updating registry at `C:\Users\zpan\.julia\registries\General`  
Updating git-repo `https://github.com/JuliaRegistries/General.git`  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package DebuggerFramework [67417a49]:  
DebuggerFramework [67417a49] log:  
├─possible versions are: 0.1.0-0.1.2 or uninstalled  
├─restricted to versions \* by an explicit requirement, leaving only versions 0.1.0-0.1.2  
└─restricted by julia compatibility requirements to versions: uninstalled — no versions left

(v1.1) pkg\> add ASTInterpreter2  
Resolving package versions…  
ERROR: Unsatisfiable requirements detected for package ASTInterpreter2 [e6d88f4b]:  
ASTInterpreter2 [e6d88f4b] log:  
├─possible versions are: 0.1.0-0.1.1 or uninstalled  
├─restricted to versions \* by an explicit requirement, leaving only versions 0.1.0-0.1.1  
└─restricted by julia compatibility requirements to versions: uninstalled — no versions left

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [March 26, 2019, 4:39pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/6 "2019-03-26T16:39:37Z")

</div>

You don’t need to install those packages at all anymore, so after `pkg> rm DebuggerFramework ASTInterpreter2` you can just do a `pkg> update` and things should work fine.

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 5:13pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/7 "2019-03-26T17:13:35Z")

</div>

Thank you! I did that and got Juno.@enter working!

However I still got a problem while setting break point. Please help, I’m almost there! 😀

 ![atom_2019-03-26_12-03-36](https://global.discourse-cdn.com/julialang/original/3X/a/c/acaea15b8ef1259556712330e6d3281128014672.png)

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [March 26, 2019, 5:15pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/8 "2019-03-26T17:15:06Z")

</div>

Take a look at

> [@\[ANN\] Juno 0.8](https://discourse.julialang.org/t/ann-juno-0-8/22157):
>
> Hey folks, Juno 0.8 is out – get it while it’s fresh! While there of course have been loads of small bugfixes, the three stand-out features of this release are: Debugger Integration Juno now provides a fairly complete debugging experience, thanks to all the recent work on [JuliaInterpreter.jl](https://github.com/JuliaDebug/JuliaInterpreter.jl). Also see [the recent blog post](https://discourse.julialang.org/t/debugging-julia/22147). The API to access the debugger consists of Juno.@run to run an expression and stop at any breakpoints, and Juno.@enter to step into the function and start step…

and

> **[Debugging · Juno Documentation](https://docs.junolab.org/latest/man/debugging/)**

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 7:22pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/9 "2019-03-26T19:22:12Z")

</div>

Thank you, thank you, thank you!

After reading about using Revise and includet(), I was able to set the break point and make Juno.@run() work!

This debugger removed the last major hurdle for me to promote Julia to my colleagues at work. Actually I already started and got one interested, but another was saying “no GUI debugger is a big deal”. Now all is well. 🙂

Great job and great product! Now I’m going off to have more fun with the power of Julia on my side… 💪

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 8:46pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/10 "2019-03-26T20:46:53Z")

</div>

OK I’ve been playing with the debugger for a little bit. Once thing I notice is if I have calls like PyPlot.plot() or CSV.read(), the debugger will error out when executing them. Similarly, Revise.includet() would error out.

My guess is if there is foreign call to C or Python, the current debugger cannot handle it. Is my guess right? If so, is there a way to still allow stepping over them without stepping into these calls? I don’t expect Julia debugger to debug Python/C functions, but if I have to get rid of all non-pure Julia calls in my code, it may not be very feasible.

Thanks!

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [March 26, 2019, 9:10pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/11 "2019-03-26T21:10:17Z")

</div>

> [@Zhong\_Pan](#):
>
> My guess is if there is foreign call to C or Python, the current debugger cannot handle it. Is my guess right? If so, is there a way to still allow stepping over them without stepping into these calls? I don’t expect Julia debugger to debug Python/C functions, but if I have to get rid of all non-pure Julia calls in my code, it may not be very feasible.

The debugger is meant to handle everything but since it is new there might of course still be bugs. Opening them with good examples with the code you try to run at [GitHub - JuliaDebug/JuliaInterpreter.jl: Interpreter for Julia code](https://github.com/JuliaDebug/JuliaInterpreter.jl) is a good idea.

---

<div class="post-metadata">

### Author: ![Zhong\_Pan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zhong_pan/32/19872_2.png) [@Zhong\_Pan](https://discourse.julialang.org/u/Zhong_Pan)
#### Post date: [March 26, 2019, 9:12pm UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/12 "2019-03-26T21:12:18Z")

</div>

Thanks! Will open issues there.

---

<div class="post-metadata">

### Author: ![BLI](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bli/32/37206_2.png) [@BLI](https://discourse.julialang.org/u/BLI)
#### Post date: [April 5, 2019, 7:58am UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/13 "2019-04-05T07:58:10Z")

</div>

I updated all packages, and updated Juno. [Every time I update Juno, Atom starts without the Julia menu, so I eventually tend to uninstall Atom and reinstall it… Anyway…]

With new version of Juno, I opened a file, and clicked in the left margin to set a break point. This caused an error message:

```julia
Error in Debugger
no signatures found at C:\Users\unsername\OneDrive\...\file.jl, 12.
Restarting and `using Revise` and the relevant package may fix this problem.

```

OK – I have not installed `Revise`, and it seems like `Revise`is used. But what is meant by `the relevant package`?

Next, I added `Revise`, started Juno, and issued command `using Revise`. The same error message shows up.

So what am I doing wrong?

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [April 5, 2019, 8:01am UTC](https://discourse.julialang.org/t/new-julia-debugger-in-juno/22359/14 "2019-04-05T08:01:38Z")

</div>

> [@BLI](#):
>
> I updated all packages, and updated Juno. [Every time I update Juno, Atom starts without the Julia menu, so I eventually tend to uninstall Atom and reinstall it… Anyway…]

[http://docs.junolab.org/latest/man/faq/#Juno-doesn’t-work-properly-after-some-Atom-packages-were-updated.-What-do-I-do?-1](http://docs.junolab.org/latest/man/faq/#Juno-doesn't-work-properly-after-some-Atom-packages-were-updated.-What-do-I-do?-1)

> [@BLI](#):
>
> Next, I added `Revise` , started Juno, and issued command `using Revise` . The same error message shows up.
> 
> So what am I doing wrong?

Revise needs to be aware of the code you’re trying to set the breakpoint in, so you need to `Revise.track` or `includet` your file first (unless it’s part of a module, in which case `using` or `import`ing that module is enough).  
In the (hopefully) near future it won’t be necessary to use Revise for these kinds of breakpoint though.
