# Another Debugger: MagneticReadHead.jl

**URL:** <https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150>\
**Category:** Package Announcements\
**Created:** [March 21, 2019, 3:19pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150 "2019-03-21T15:19:25Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [March 21, 2019, 3:19pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/1 "2019-03-21T15:19:25Z")

</div>

Now that [Debugger.jl](https://discourse.julialang.org/t/debugging-julia/22147), has been announced,  
it seems an appropriate time to announce my debugger is also ready for public use.

It is a bit more beta, and it would thus really benifit from people using it and giving feedback.

> **[GitHub - oxinabox/MagneticReadHead.jl: A cassette-based debugger | The Other...](https://github.com/oxinabox/MagneticReadHead.jl)**
>
> A cassette-based debugger | The Other Debugger. Contribute to oxinabox/MagneticReadHead.jl development by creating an account on GitHub.

[![asciicast](https://asciinema.org/a/DxgPaaLQQYVV5xXCMuwF5Aa36.svg)](https://asciinema.org/a/DxgPaaLQQYVV5xXCMuwF5Aa36)

MagneticReadHead is more of a codename than a final name (though it might stick).  
[Bikeshedding over name is happenning here.](https://github.com/oxinabox/MagneticReadHead.jl/issues/7)

The core is fairly different to Debugger.jl,  
MagneticReadhead is build ontop of [Cassette.jl](https://github.com/jrevels/Cassette.jl).  
The debugging instrumentation gets compiled into the code.  
In theory this can be faster than interpretting, but I have not yet run timing.

It is also using @tim.holy’s [CodeTracking.jl](https://github.com/timholy/CodeTracking.jl), to help map between line numbers and methods.  
In the future it will hopefully share more of the toolchain with Debugger.jl.

I am excited to live in a world where we have two competing julia debuggers.  
No doubt this will lead to better common tooling, better drive for improvements, and redundancy incase of issues with one you can switch to the other.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 21, 2019, 4:03pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/2 "2019-03-21T16:03:43Z")

</div>

> [@oxinabox](#):
>
> I am excited to live in a world where we have two competing julia debuggers.  
> No doubt this will lead to better common tooling, better drive for improvements, and redundancy incase of issues with one you can switch to the other.

My personal hope is that Debugger can steal tech from MagneticReadHead and incorporate some of the Cassette tricks to mitigate the orders-of-magnitude performance hit that interpretation can cause. I can imagine JuliaInterpreter behaving like an interpreter but selectively compiling methods that it doesn’t need step through that have loops or recursion, for example.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 21, 2019, 4:30pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/3 "2019-03-21T16:30:11Z")

</div>

I should also say: amazing work on MagneticReadHead—it so cool to see Cassette used for so many things. Amazing that it started out as a framework for automatic differentiation and machine learning.

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [March 21, 2019, 4:56pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/4 "2019-03-21T16:56:57Z")

</div>

Using it already. And it works! Thankyou.

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [March 21, 2019, 4:57pm UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/5 "2019-03-21T16:57:30Z")

</div>

Debugger : (Irish) The person who sold you the system.

> **[Goodreads](https://www.goodreads.com/book/show/70389.The_Devil_s_DP_Dictionary)**
>
> Discover and share books you love on Goodreads.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [March 22, 2019, 11:30am UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/6 "2019-03-22T11:30:34Z")

</div>

How to install it? Tried but

```julia
(v1.1) pkg> add https://github.com/oxinabox/MagneticReadHead.jl
   Cloning git-repo `https://github.com/oxinabox/MagneticReadHead.jl`
  Updating git-repo `https://github.com/oxinabox/MagneticReadHead.jl`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package SIUnits [b9d75638]:
 SIUnits [b9d75638] log:
 ├─possible versions are: [0.0.1-0.0.6, 0.1.0] or uninstalled
 ├─restricted by julia compatibility requirements to versions: uninstalled
 └─restricted by compatibility requirements with Images [916415d5] to versions: [0.0.1-0.0.6, 0.1.0] — no versions left
   └─Images [916415d5] log:
     ├─possible versions are: [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.6.0-0.6.1, 0.7.0, 0.8.0, 0.9.0-0.9.1, 0.10.0-0.10.1, 0.11.0-0.11.5, 0.12.0, 0.13.0, 0.14.0, 0.15.0-0.15.1, 0.16.0-0.16.1, 0.17.0-0.17.3] or uninstalled
     └─restricted to versions 0.17.2 by an explicit requirement, leaving only versions 0.17.2

```

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [March 22, 2019, 11:43am UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/7 "2019-03-22T11:43:58Z")

</div>

This doesn’t actually have anything to do with MagneticReadHead.jl. SIUnits.jl is not compatible with Julia 1.0, but it was (until recently) required for Images.jl. You need the newest release of Images.jl which removes the dependency on SIUnits: [https://github.com/JuliaImages/Images.jl/releases/tag/v0.17.3](https://github.com/JuliaImages/Images.jl/releases/tag/v0.17.3)

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [March 22, 2019, 11:47am UTC](https://discourse.julialang.org/t/another-debugger-magneticreadhead-jl/22150/8 "2019-03-22T11:47:45Z")

</div>

Thanks, updating made it work (had updated yesterday, I think).
