How to enter a file using gallium?

208 views
Skip to first unread message

chobb...@gmail.com

unread,
Nov 18, 2016, 12:49:35 PM11/18/16
to julia-users


Hi there,

I'm totally new to the new debuggers. What I'm aiming at is to go through a file (it's a file calling other packages and functions therein.) line by line, just like in matlab. The first step is to step in the file using gallium. I know how to traverse a function in terminal using Gallium. But it seems that I can't enter a file by doing the same thing like:

julia> @enter test.jl
ERROR
: BoundsError: attempt to access 0-element Array{Int64,1} at index [0]


How can I enter a file via Gallium? Is it possible at all? Thanks.

Michele Zaffalon

unread,
Nov 18, 2016, 3:11:45 PM11/18/16
to julia...@googlegroups.com
You @enter the function, not the file. What function would you call once you include test.jl? That is the function to which you should prepend @enter.

chobb...@gmail.com

unread,
Nov 19, 2016, 5:43:29 AM11/19/16
to julia-users
Thanks for the comments. I tried what you suggested by adding @enter at the beginning of a line where a function is called. But an error was thrown.

julia> include("/home/calvin/Documents/git/codes/fc.jl/examples/test.jl")
ERROR
: LoadError: AssertionError: isa(arg,Expr) && arg.head == :call
 
in include_from_node1(::String) at ./loading.jl:488
while loading /home/calvin/Documents/git/codes/fc.jl/examples/test.jl, in expression starting on line 19

Am I missing anything? Thanks!


Michele Zaffalon

unread,
Nov 19, 2016, 7:26:38 AM11/19/16
to julia...@googlegroups.com
The @enter should be prepended to the function in the REPL, not in the
file itself. It should be something like this:

julia> include("/home/calvin/Documents/git/codes/fc.jl/examples/test.jl")

julia> @enter function_to_debug(args_to_function)

chobb...@gmail.com

unread,
Nov 19, 2016, 10:08:14 AM11/19/16
to julia-users
Thanks! It now works for me. Two more quick questions:

1. Suppose I have the following code where the variable A is defined multiple times and after each definition it is used by the same function function_to_debug. How can I step in function_to_debug with the first definition/instantiation of A?

A = ...
function_to_debug
(A)
...
...
A
= ...
function_to_debug
(A)


2. As I'm step through the function_to_debug(), how can I print the value of some variables. I know that I can use 'fr v' which prints everything. How can I print just a single variable that I'm looking at?

Thanks!!

Michele Zaffalon

unread,
Nov 19, 2016, 10:14:13 AM11/19/16
to julia...@googlegroups.com
I don't know the answer to the first question.

For the second, you should check
https://github.com/Keno/ASTInterpreter.jl and in particular the
command `stuff.

chobb...@gmail.com

unread,
Nov 19, 2016, 11:00:42 AM11/19/16
to julia-users
Thanks for the comments on my second question. I missed the acute prepended before 'stuff'.

chobb...@gmail.com

unread,
Nov 21, 2016, 6:30:26 AM11/21/16
to julia-users
Bump up for the following question:


Suppose I have the following code where the variable A is defined multiple times and after each definition it is used by the same function function_to_debug. How can I step in function_to_debug with the first definition/instantiation of A?
A = ...
function_to_debug
(A)
...
...
A
= ...
function_to_debug
(A)

Seems that the only choice is to use breakpoint. Any other means without resorting to breakpoints??

Isaiah Norton

unread,
Nov 21, 2016, 9:32:16 AM11/21/16
to julia...@googlegroups.com
Any other means without resorting to breakpoints??

Use `@enter function_to_debug( ... )` with the value of A that you are interested in. 

chobb...@gmail.com

unread,
Nov 21, 2016, 11:00:54 AM11/21/16
to julia-users
Well, if A is a complicated object/structure, it'll be almost impossible to first make up an A and call @enter function_to_debug(A).

Isaiah Norton

unread,
Nov 21, 2016, 3:19:50 PM11/21/16
to julia...@googlegroups.com
If breakpoints aren't working, I would suggest to your push object(s) of interest into a global Vector{Any} and then debug with `@enter`.

Michele Zaffalon

unread,
Nov 21, 2016, 4:15:46 PM11/21/16
to julia...@googlegroups.com
How would you do that in MATLAB?

chobb...@gmail.com

unread,
Nov 22, 2016, 4:13:42 AM11/22/16
to julia-users
That's a good stopgap, if there's better options. Thanks!!
Reply all
Reply to author
Forward
0 new messages