# \[ANN\] Rebugger: interactive debugging for Julia 0.7/1.0

**URL:** <https://discourse.julialang.org/t/ann-rebugger-interactive-debugging-for-julia-0-7-1-0/13843>\
**Category:** Community\
**Tags:** announcement\
**Created:** [August 21, 2018, 5:51pm UTC](https://discourse.julialang.org/t/ann-rebugger-interactive-debugging-for-julia-0-7-1-0/13843 "2018-08-21T17:51:08Z")\
**Posts on this page:** 1\
**Showing post:** 18

<div class="post-metadata">

**Author:** ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)\
**Post date:** [August 23, 2018, 3:22pm UTC](https://discourse.julialang.org/t/ann-rebugger-interactive-debugging-for-julia-0-7-1-0/13843/18 "2018-08-23T15:22:43Z")

</div>

Actually, I’ve come to suspect that if you’re sufficiently devious it may not quite be true. I haven’t tested so I can’t promise this will work, but here’s a sketch of how I’ve imagined implementing breakpoints. For a “method” with 2 interior breakpoints, Rebugger would put code on your command-line that looks something like this (if you’ve not looked, [the docs](https://timholy.github.io/Rebugger.jl/latest/internals.html) might help explain some of this):

```julia
rebug> @eval SomeModule let (vars..., label_at_exit) = getstored(uuid) begin
          @goto $(label_at_exit)
          # somecode
          setstored!(uuid, varnames, varvals, :label1)
          throw(StopException())
          @label label1
          # code just after the first breakpoint
          setstored!(uuid, varnames, varvals, :label2)
          throw(StopException())
          @label label2
          # code just after the second breakpoint
      end

```

So if you enter this at the top, it will store program state just above `label1` and then exit. (The `StopException` would be caught by Rebugger…or maybe that should just be a `return nothing`? Not sure.) Because it stored the label at which it exited, and loads from that storage at the top, if you just re-run this same command it will begin at `label1` and continue on to `label2`.

I’m sure this will need some modification, but this is the general gist.

---

_[View the full topic](https://discourse.julialang.org/t/ann-rebugger-interactive-debugging-for-julia-0-7-1-0/13843)._
