[fpc-devel] dwarf line info and try finally

Martin Frb lazarus at mfriebe.de
Sun Apr 20 20:06:04 CEST 2014


I added some code to the debugger, to allow stepping from a risen 
exception, to a finally or except block.
And also to step correctly from the end of finally (reraise) to the next 
finally/except.

However, the compiler does not add lineinfo for the finally 
(FPC_POPADDRSTACK) or the end (reraise) statement.

This means:
1) When stepping into an finaly/except block (the IDE does this by 
breaking in FPC_POPADDRSTACK and step out one) then the execution point 
is still in the last statement before the finally/except. This is 
because fpc added the FPC_POPADDRSTACK to the last statement in the try 
block.

2) If stepping ove the last command in a try/finally (entered as result 
of an exception) then the ReRaise is part of the last statement. 
Stepping over the last statement, will trigger the Reraise (and go to 
the next finally/except)


Both are cosmetic, and the 2nd can even be seen as correct (though 
probably not expected by many users).
Therefore would it be possible/acceptable to generate line info for the 
except/finally/end ?

Or point 1 might also be solvable by starting the line info of the first 
command in the try/finally before the FPC_POPADDRSTACK


Any ideas?

Also any ideas, if there is a way to identify implicit finally? 
Currently one has to step through all of them.



More information about the fpc-devel mailing list