On 21/11/2014 22:46, Mattias Gaertner wrote:
But I see it for example with any constructor. Even as simple as this:

type
   TMyClass = class
   public
     i: Integer;
     constructor Create;
   end;

constructor TMyClass.Create;
begin
   i:=3;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   c: TMyClass;
begin
   c:=TMyClass.Create; // <- breakpoint
end'

Run,
Step into, cursor moves to 'begin' of the constructor.
Step into, cursor moves to 'end' of the constructor.
Step into, cursor moves to 'i:=3'.


With this code, I get the same.

It would take a longer time to analyse the line info in the asm as fpc generates it (as that is already cryptic enough), but I would think this is as fpc generates it.

In the asm output ( -al )

.section .debug_line
# === header start ===
...
# [41:1]
    .byte    2
    .uleb128    .Ll3-.Ll2
    .byte    14


.Ll2 is a label at the start of the constructor.


Also in the asm the comment introducing line 41
# [41] end;

comes before
# [40] i:=3;

So as far as the debugger goes, this would then be correctly following the debug info.









--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to