# Debugger usage: step over evaluations in function arguments, straight into the function

**URL:** <https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018>\
**Category:** General Usage\
**Tags:** debugger\
**Created:** [February 24, 2022, 1:46pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018 "2022-02-24T13:46:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [February 24, 2022, 1:46pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/1 "2022-02-24T13:46:15Z")

</div>

When using Debugger.jl from the REPL, I often find I have a function call like

```julia
@views foo!(a[:,j,i], b[j], c.bar)

```

To actually step into the body of `foo!()`, I find myself first stepping into `getindex()`/`getproperty()`/etc. then stepping out, and repeating for several arguments to `foo!()`, before I finally get into the body of `foo!()`.

Is there any way to jump straight into the body of `foo!()`? Apologies if I’ve missed in in the help or Debugger.jl docs! One possibility I guess is to add a breakpoint like `bp add foo!(x,y,z)`, but that gets tedious for functions with long signatures, and I don’t necessarily want the breakpoint, so would probably have to delete it immediately after jumping to it.

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 24, 2022, 2:19pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/2 "2022-02-24T14:19:39Z")

</div>

In vscode, you can right-click the code and press “step into targets” and choose where to step in the popyup menu that appears. I’m not sure if anything similar works in the terminal.

---

<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 24, 2022, 3:45pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/3 "2022-02-24T15:45:45Z")

</div>

> [@baggepinnen](#):
>
> I’m not sure if anything similar works in the terminal.

Nope, it doesn’t.

---

<div class="post-metadata">

**Author:** ![StevenWhitaker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevenwhitaker/32/9749_2.png) [@StevenWhitaker](https://discourse.julialang.org/u/StevenWhitaker)\
**Post date:** [February 24, 2022, 3:59pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/4 "2022-02-24T15:59:50Z")

</div>

> [@johnomotani](#):
>
> I find myself first stepping into `getindex()` / `getproperty()` /etc. then stepping out

You can use `se` instead of `s` to avoid stepping into all those functions. Just make sure to remember to use `s` once you get to the function call of interest.

---

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [February 24, 2022, 5:52pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/5 "2022-02-24T17:52:36Z")

</div>

Thanks @StevenWhitaker, that does help. I still find it pretty easy to miss the function call. It would be nice to have a single command, but I guess that’s a feature request for Debugger.jl!

---

<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:** [February 24, 2022, 6:39pm UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/6 "2022-02-24T18:39:47Z")

</div>

It would be quite easy to add a command that steps into the last function for a given line (which should be the outermost).

---

<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:** [February 25, 2022, 10:43am UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/7 "2022-02-25T10:43:37Z")

</div>

Also, it is better to use `nc` here, to avoid having to step over so much garbage.

---

<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:** [February 25, 2022, 10:46am UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/8 "2022-02-25T10:46:19Z")

</div>

[https://github.com/JuliaDebug/JuliaInterpreter.jl/pull/520](https://github.com/JuliaDebug/JuliaInterpreter.jl/pull/520) together with [https://github.com/JuliaDebug/Debugger.jl/pull/310](https://github.com/JuliaDebug/Debugger.jl/pull/310) should add this feature.

---

<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 25, 2022, 11:11am UTC](https://discourse.julialang.org/t/debugger-usage-step-over-evaluations-in-function-arguments-straight-into-the-function/77018/9 "2022-02-25T11:11:15Z")

</div>

I hope that this will become the default when debugging in VSCode. Current one (the one described in this thread) is very annoying.
