JuliaDebug/Gallium.jl

<No file found. Did DWARF parsing fail?>

Opened this issue · 4 comments

i am clueless about the followign error. i set 2 breakpoints:

bp = Gallium.breakpoint(bk.cash_stay!)
bp2 = Gallium.breakpoint(bk.saveprob)

when i run the program, it stops at the first breakpoint. however, it exits from that function and does not stop at the second breakpoint, instead (I think) it says

<No file found. Did DWARF parsing fail?>

both functions are called on after the other in the running program:

cash_stay!(cash,u_vec,ia,ip,ih,iL,im,y,age,m,p)
v,id  = saveprob(u_vec,m.tmp_EVown,p)
julia> Gallium.list_breakpoints()
[1] Locations (+: active, -: inactive, *: source):
 * Any matching method added to bk.#cash_stay!
 * Any matching specialization of cash_stay!(cash, u, ia, ip, ih, iL, im, y, age, m, p) at /Users/florian.oswald/git/bk/bk.jl/src/solver.jl:697

[2] Locations (+: active, -: inactive, *: source):
 * Any matching method added to bk.#saveprob
 * Any matching specialization of saveprob(u, EV, p) at /Users/florian.oswald/git/bk/bk.jl/src/solver.jl:765

what's wrong here?

Keno commented

That's pretty much an internal error. Do you have a way for me to reproduce this?

It happens in a rather large code base that I can't share with you I'm afraid, so that's a problem. I did note however, from reading in another issue, that I have to say @noinline in front of short functions, like saveprob is, for example. with that modification and only setting bp2 = Gallium.breakpoint(bk.saveprob) (not the other breakpoint), I'm at least able to stop inside that function.
It's my impression that large code bases are harder to manage for the debugger, which is kind of intuitive if it has to analyse a more complex tree. not sure that is true anyway. it does make it harder to provide reproducible examples though. any suggestions, I'm happy to help.

Keno commented

Well, it's no secret that the breakpointing bits of Gallium are a little fragile (the @enter stuff is pretty solid though). For good reason of course, and it'll get better with time but that's the current state. julia -O0 --inline=no helps work around some of these issues, but not all of them.

ah, ok I didn't know that. I can use @Enter i guess. thanks!
(you can close this unless you think there's any use leaving it here)