Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cursor placement problems, Problems examining variables #44

Open
mattcbro opened this issue Sep 6, 2018 · 2 comments
Open

Cursor placement problems, Problems examining variables #44

mattcbro opened this issue Sep 6, 2018 · 2 comments

Comments

@mattcbro
Copy link

mattcbro commented Sep 6, 2018

I'm just not getting how to use Rebugger effectively. If I use alt-e to enter a function, if the function is too large the top of the function source is not shown. If I press the up or down cursor to move around in the code, it will often simply scroll through previous commands. It seems that you have to have the cursor placed on the right horizontal indent to scroll around.

I can't insert a newline into the code, since the Enter key executes the code, and if I prepend an @show on a particular line, I'm not certain where the output gets printed if anywhere. Thus I have no idea how to view a variable. If I use alt-e on the line with an inserted @show it simply enters the new function without giving me the output.

It's clear to me I'm somehow missing the point of how to use Rebugger correctly. Editing code on the fly in the REPL seems a little wonky and it doesn't seem to display the start of the function. Maybe I need to scroll the REPL window buffer upwards. I'd love to see a simple example of debugging a simple mathematical function that includes examining intermediate variables.

Just to clarify one point, scrolling the window that displayes the REPL shows the code that represents the start of a given function, but I can not place the cursor within that code. The up arrow will not go past the top line currently displayed, even after scrolling. Also as I said up-arrow often just selects a previous command. That command is often displayed in the middle of the code I'm examining.

As such I simply can not use Rebugger at all for any sort of code walk through or any debugging. Hopefully the situation will improve soon, since a debugger is still desperately needed for Julia 1.0.

I'm running julia on linux mint 19 in a gnome-terminal.

@timholy
Copy link
Owner

timholy commented Sep 7, 2018

The large-function problem is also reported in #29. I need to get to this at some point soon. (Most of my own code, as well as Julia's Base, uses pretty short functions so I don't hit this very often myself.) The terminal-manipulation part is the scariest and hardest part to debug (mostly split off into HeaderREPLs.jl) and given that I'm still fixing problems in Revise I just haven't gotten to this yet.

it doesn't seem to display the start of the function

That's the purpose of the magenta line above it, for example

show(io::IO, X::AbstractArray) in Base at arrayshow.jl:418
  io = Base.TTY(RawFD(0x0000000d) open, 0 bytes waiting)
  X = [1, 2, 4]
rebug> @eval ...

indicates that you're in the corresponding show method. The blue lines show arg values.

I can not place the cursor within that code

That may also be a consequence of long lines? I do suspect that Rebugger is badly broken for functions that take more than one screenful. Perhaps try some of the demos in the docs yourself, and see if it starts to make more sense? (I'm interested in the answer either way.)

I will get to the long-function problem, but I fear I still have several days' worth of coding projects that are of higher priority.

@mattcbro
Copy link
Author

mattcbro commented Sep 8, 2018

It's not a problem. I'm not trying to rush you. I'm under a bit of pressure myself so I reverted back to Version 0.6.4 and am making good use of atom+Juno's debugging facility. I may have found a bug in that debugger, but it will be very difficult to reproduce.

My code contains a lot of parameters, each of which can mess up my algorithm. As a result I often need to step through my code monitoring a dozen variables. In 0.6.4 you can browse the workspace in Juno as you step through code, which is very very useful. Look forward to seeing that capability propagate to Julia 1.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants