# Julia debugging is extremely slow

**URL:** https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839
**Category:** New to Julia
**Tags:** debug
**Created:** [February 25, 2026, 1:25pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839 "2026-02-25T13:25:33Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)
#### Post date: [February 26, 2026, 11:53am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/41 "2026-02-26T11:53:29Z")

</div>

That sucks. If you have something particular in mind, you can always reach out - the goal is to have it work really well for all of us, so happy to improve this in my plugin 🙂

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 26, 2026, 12:45pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/42 "2026-02-26T12:45:51Z")

</div>

That is indeed a nice introduction. However from what I can read and from what others have mentioned about how to program with Julia using REPL. These adaptations in workflow seems like workarounds that people have invented because there isn’t a good debugger.  
I remember when I was using python in the early days and one fo the big IDEs was spyder, which seems to function kinda like how people are using Julia/REPL from what I understand.

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 26, 2026, 12:53pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/43 "2026-02-26T12:53:18Z")

</div>

I found the settings.json file and added this to the top

```
"julia.debuggerDefaultCompiled": [
    "ALL_MODULES_EXCEPT_MAIN",

```

But it made no difference on the debugger it still got stuck on the same line.

---

<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: [February 26, 2026, 1:16pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/44 "2026-02-26T13:16:50Z")

</div>

Can you try a simple example like the one in my screenshot?  
Either something is very weird about your setup, or you’re running the debugger differently – loading a 5MB CSV takes very little time for me.

---

<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: [February 26, 2026, 1:36pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/45 "2026-02-26T13:36:53Z")

</div>

Sorry, I may have not been very clear but my comments were about VSCode experience.

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 26, 2026, 1:37pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/46 "2026-02-26T13:37:49Z")

</div>

I guess I’m doing something wrong:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/2/c/2c25b3f095ca365f82b5575e99ea6eff506ea91d.png)

I do not have time to look at what exactly I’m doing wrong now, but I will check back in later and try to fix it.

---

<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: [February 26, 2026, 1:40pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/47 "2026-02-26T13:40:26Z")

</div>

Just run that in the REPL, not in a dedicated debugger process. I wouldn’t usually recommend running the whole file through a debugger, ref [Debugging · Julia in VS Code](https://www.julia-vscode.org/docs/stable/userguide/debugging/#Debugging-code-from-the-REPL).

---

<div class="post-metadata">

### Author: ![mikmoore](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mikmoore/32/31109_2.png) [@mikmoore](https://discourse.julialang.org/u/mikmoore)
#### Post date: [February 26, 2026, 4:07pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/48 "2026-02-26T16:07:54Z")

</div>

My primary debugging workflow involves adding `@show` (or `display` for types like `Matrix` that are hard to read in `@show`) statements on variables that appear to be causing an issue. Then, when you re-run the program you can see what those values were leading up to the issue. If the program doesn’t stop at the issue, I’ll sometimes add an `error()` call (maybe within an `if` statement, if I need it to go through a few passes first) right after to stop the program from burying the part I care about. I guess it’s a bit like a crude `Infiltrator` except that you need to pick what values you will inspect in advance.

I think this is one of the techniques people would call “REPL-based debugging.” I won’t say it’s “nice” or profoundly ergonomic (and it takes a little practice to figure out what/when is best to print), but it’s a rather common technique in languages that have underwhelming debugging faculties. For example, I do the same thing in C++.

---

<div class="post-metadata">

### Author: ![cstjean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cstjean/32/1444_2.png) [@cstjean](https://discourse.julialang.org/u/cstjean)
#### Post date: [February 27, 2026, 1:22am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/49 "2026-02-27T01:22:02Z")

</div>

I’ll frequently insert `global dbg=(some_local_variable, some_other_local)` inside a function I care about. Then at the REPL I’ll look at `ThatPkg.dbg`. In some ways it’s a poor-man `Infiltrator.@exfiltrate`, but it’s dead simple to see how it works.

Revise.jl really was the best thing to happen to Julia.

---

<div class="post-metadata">

### Author: ![PatrickHaecker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patrickhaecker/32/222891_2.png) [@PatrickHaecker](https://discourse.julialang.org/u/PatrickHaecker)
#### Post date: [February 27, 2026, 4:54am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/50 "2026-02-27T04:54:18Z")

</div>

> [@pfitzseb](#):
>
> There are currently two main issues when it comes to configuration
> 
> - the `ALL_MODULES_EXCEPT_MAIN` functionality isn’t super discoverable
> - the shipped list of compiled functions is very outdated (and will also cause a bunch of issues, depending on the Julia version)

But isn’t the problem of `ALL_MODULES_EXCEPT_MAIN` that it fails to do what you want as soon as you use `map`, broadcasting or any other function which is not in `Main` but gets a function from `Main` as an argument?

---

<div class="post-metadata">

### Author: ![A\_C](https://avatars.discourse-cdn.com/v4/letter/a/da6949/32.png) [@A\_C](https://discourse.julialang.org/u/A_C)
#### Post date: [February 27, 2026, 4:59am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/51 "2026-02-27T04:59:27Z")

</div>

Maybe the docs should emphasize @run and @enter for debugging. They are quite fast once most of the modules are compiled. Clicking on the run and debug button on the other hand is very slow and degrades the experience.

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 27, 2026, 7:20am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/52 "2026-02-27T07:20:53Z")

</div>

I think I’m running it through the REPL in debugging mode now?  
I was able to step from the first line, but I am once again unable to step by the csv.load line it is simply stuck on that.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/6/a/6accd97ecc88e0fc37886f8fa852488fb98e845f.png)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/e/9/e9edf938a82ba45da191479ea544783678277d44.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: [February 27, 2026, 8:01am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/53 "2026-02-27T08:01:14Z")

</div>

Uh, sure, but now you’re doing this in a non-VS Code IDE (and apparently through Debugger.jl), which I can’t help you with. My advice was very specific to VS Code.

@PatrickHaecker yes. You need to explicitly set those as interpreted (which was the point of the default list we had in the extension previously, but I don’t have time to maintain that for different Julia versions – it’s surprisingly annoying to find all of the, sometimes internal, higher order functions in Base).

---

<div class="post-metadata">

### Author: ![Janis\_Erdmanis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/janis_erdmanis/32/10869_2.png) [@Janis\_Erdmanis](https://discourse.julialang.org/u/Janis_Erdmanis)
#### Post date: [February 27, 2026, 9:31am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/54 "2026-02-27T09:31:24Z")

</div>

I have the following recipe in my startup file which enables to use `@infiltrate` as exported symbol from `Base`:

```julia-auto
@eval Base begin
    import Infiltrator: @infiltrate
    export @infiltrate
end

```

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 27, 2026, 10:23am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/55 "2026-02-27T10:23:55Z")

</div>

I should of course have tried what you were suggesting in VS code.  
The REPL is able to run the code. But it does not stop at break points when I run line 14 through the REPL (by pressing shift+enter)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/1/a/1a5f9f0848d9124eaac7ae5adbd51da07b850d8e.png)

Am I still doing something wrong? I don’t see anything else in the debugging in VS guide.

---

<div class="post-metadata">

### Author: ![PatrickHaecker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patrickhaecker/32/222891_2.png) [@PatrickHaecker](https://discourse.julialang.org/u/PatrickHaecker)
#### Post date: [February 27, 2026, 11:25am UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/56 "2026-02-27T11:25:04Z")

</div>

> [@pfitzseb](#):
>
> but I don’t have time to maintain that for different Julia versions – it’s surprisingly annoying to find all of the, sometimes internal, higher order functions in Base

My impression is that your time is too valuable to manually maintain such function lists. However, we have a lot of brilliant people reading here. Does anyone have an idea how we can automatically come up with a list of all higher order functions in `Base`?

I think it would be a great default if the user could have everything in `Base` compiled except the higher order functions to not be surprised that breakpoints in their own code are ignored in the debugger only because the code is called via a higher order function deep down in the call stack.

I also wanted to use the opportunity to explicitly thank you for your great work, @pfitzseb! It might not be obvious in this thread, but I think I am far from alone when I state that the problem is not you maintaining the VS Code plugin, but that the problem is that we up so far failed to clone you, or, short of that, that more people would need to step up to maintain the VS Code plugin. So thanks again for all your work, @pfitzseb!

---

<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: [February 27, 2026, 12:31pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/57 "2026-02-27T12:31:29Z")

</div>

> [@tue](#):
>
> Am I still doing something wrong? I don’t see anything else in the debugging in VS guide.

Try putting the breakpoint on the `println` line, or more generally on a function call, not a statement.

> [@PatrickHaecker](#):
>
> I think it would be a great default if the user could have everything in `Base` compiled except the higher order functions to not be surprised that breakpoints in their own code are ignored in the debugger only because the code is called via a higher order function deep down in the call stack.

Yeah, that’s a good idea. I’m reasonably sure I generated the original list somehow, but it’s been a few years, so let’s see if I can find it again.

---

<div class="post-metadata">

### Author: ![tue](https://avatars.discourse-cdn.com/v4/letter/t/4491bb/32.png) [@tue](https://discourse.julialang.org/u/tue)
#### Post date: [February 27, 2026, 12:58pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/58 "2026-02-27T12:58:50Z")

</div>

> Try putting the breakpoint on the `println` line, or more generally on a function call, not a statement.

It still does not stop, but good call that the line I added the breakpoint to was one that could have been optimized out.

---

<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: [February 27, 2026, 4:27pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/59 "2026-02-27T16:27:28Z")

</div>

> [@tue](#):
>
> It still does not stop, but good call that the line I added the breakpoint to was one that could have been optimized out.

Not sure what’s going on then. It’s possible that having the breakpoint on the last line of the function causes issues, or something is weird about your config. Can you post a screenshot with the debugger panel shown? And maybe try matching the breakpoint placement/code that I had above.

> [@pfitzseb](#):
>
> Yeah, that’s a good idea. I’m reasonably sure I generated the original list somehow, but it’s been a few years, so let’s see if I can find it again.

I didn’t, but [GitHub - pfitzseb/julia-debugger-heuristics: Heuristics to find higher-order-functions in Julia Base](https://github.com/pfitzseb/julia-debugger-heuristics) seems to produce something useful. I’ll look into integrating this with the extension in same way next week.

---

<div class="post-metadata">

### Author: ![Nathan\_Boyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nathan_boyer/32/14825_2.png) [@Nathan\_Boyer](https://discourse.julialang.org/u/Nathan_Boyer)
#### Post date: [February 27, 2026, 8:28pm UTC](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839/60 "2026-02-27T20:28:34Z")

</div>

> [@pfitzseb](#):
>
> I wouldn’t usually recommend running the whole file through a debugger, ref [Debugging · Julia in VS Code](https://www.julia-vscode.org/docs/stable/userguide/debugging/#Debugging-code-from-the-REPL).

Then why not merge [my docs PR from 2023](https://github.com/julia-vscode/docs/pull/71) for that page to stop suggesting that approach first?

[Previous page](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839.md?page=2)

[Next page](https://discourse.julialang.org/t/julia-debugging-is-extremely-slow/135839.md?page=4)
