[fpc-devel] wrong step-over with fpc debug info / how to do objcopy on Mac, or strip .debug_frame

Jonas Maebe jonas at freepascal.org
Tue Dec 4 19:03:51 CET 2018


On 03/12/18 13:58, Martin wrote:
> Posts by "bigDan": 
> http://forum.lazarus-ide.org/index.php/topic,42869.msg303599.html#msg303599
> The log he provided shows that
> - lldb got a "thread step-over"
> - lldb believed to have stopped at the end of step-over (not any other 
> reason): "stop reason = step over"
> - the active thread remained the same. So stepping was done in the 
> correct thread
> - the called subroutine is located at a different address (not inlined)
>    pc before stepping (in calling code) 0x0000000100059d8e
>    pc after stepping (in subroutine) 0x00000001002718e8
> - the stackpointer was reduced by 8, and the stackframe register was NOT 
> yet modified.
>    So the stop was in the prologue ("begin" line of function)
> 
> 
> On windows one way to solve the problem was to get rid of .debug_frame 
> info.

At best it hides an apparent bug FPC's generation of Dwarf CFI.

> It would be interesting to test if that happens on Mac too.
> Does anyone know how to strip that info of the app bundle?

FPC does not generate any information that gets stored in .debug_frame 
on Darwin. The section that is there probably comes from crt1.o or so, 
and does not cover FPC-generated code.


Jonas



More information about the fpc-devel mailing list