On 08/25/2014 02:02 PM, Dmitry Boyarintsev wrote:
On Mon, Aug 25, 2014 at 6:26 AM, C Western <l...@c-m-w.me.uk
<mailto:l...@c-m-w.me.uk>> wrote:


    1. How about a "slow step" option?

What's is slow step option? Is it stepping over each instruction until
the next known line reached?

As I wrote that a 'perfect' step (the step you described) would be very slow, I think that this is what he means, yes.

I've tried that: LCL without debug-info, created a OnFormCreate event and then I stepped into the CreateForm function. With this 'slow step' it took more than 15 minutes before the debugger stopped inside the event.

So a "slow step" is not a real option. What could be done is adding a setting for how many levels "deep" the debugger will use simple single-stepping.

But for now I'm happy with the current solution.

    2. Could the compiler add more information to make this easier? Or
    is it simply a matter of compiling everything with a stack frame?

How about using a 3d party library compiled without debugging info /
stack frame?
The library could use your code compiled with debug info (i.e. by
calling a callback), where the debugger should stop.

Indeed. That's one problem. Another problem is that on i386 a third-party library could use another calling convention. And for some (most?) compiler-proc's it is not possible to create a stack-frame, which also would slow down the code.

What the compiler could do is adding line-info for the complete code. But I doubt that an average developers will appreciate that. An alternative could be to add line-info, but with a remark that the code could be skipped during stepping. But then we need to add something new to the Dwarf-format.

Joost.

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to