<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?
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.
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.