[fpc-pascal] Re: OT: Amazing new development tools

Martin lazarus at mfriebe.de
Tue Feb 28 11:59:25 CET 2012


On 27/02/2012 12:32, Lukasz Sokol wrote:
> On 26/02/2012 11:17, Mattias Gaertner wrote:
>> On Sun, 26 Feb 2012 11:43:38 +0100 (CET) Michael Van Canneyt
>> <michael at freepascal.org>  wrote:
>>
>>>
>>> On Sun, 26 Feb 2012, Vinzent Höfler wrote:
>>>
>>>> On Sat, 25 Feb 2012 19:15:54 +0100, ik
>>>> <idokan at gmail.com>  wrote:
>>>>
>>>>> I found the following amazing lecture that present a new idea
>>>>> of a development tool, that I think will interest you all:
>>>>>
>>>>> http://vimeo.com/36579366
>>>> Impressive, indeed. And I am usually not that easily impressed.
>>> Impressed indeed. But IMHO limited to a certain kind of
>>> programming. The binary search part could probably be done for any
>>> kind of programming, I suppose.
>> I doubt that "any kind of programming". He showed the simplest case:
>> a function that only receives base types. But most functions work on
>> complex parameters - classes. These need to be set up. Either by
>> writing a test environment or by taking a snapshot with the debugger.
>> Then you can run the function repeatedly.
>>
>> The next step is to "compile" the function on every change. Easy with
>> an interpreter. How to compile only one function of a big program and
>> insert/replace it?
> Sorry for a plug, but MS VC++ 6.0 (!)* allowed for Pause->Edit Code->
> Quick compile->Resume Execution kind of workflow...
>
> Yes, in Debug/Pause mode, you COULD write a {code block} and then go
> Debug->Apply and Continue (or something like that) and voila,
> you could totally change code paths ...
> (Not that I know much about internals/constraints of this, to be honest,
> but of all, i found that a very cool feature)
>
> Is there a way to add THAT to FPC/Lazarus/GDB world ?
>

I wonder where the limits of that are.

Sure one *could* record *all* variables, and the callstack...
But what if
- you add a new variable, what to initialize it with?
- remove the function that called the current code, or even delete the 
line where you just paused?

Or one could record all input, and replay the app. But that has limits too.

Neither of those are likely to happen....


btw on some platforms, gdb can step backwards (again limitations apply). 
But it's not integrated in Lazarus yet...




More information about the fpc-pascal mailing list