[Lazarus] i'm looking for tips on debugging deep nested code with recursive functions
Martin
lazarus at mfriebe.de
Wed Feb 15 15:42:11 CET 2012
On 15/02/2012 12:19, ik wrote:
> On Wed, Feb 15, 2012 at 13:59, Everton Vieira<tonvieira at gmail.com> wrote:
>> Em 15/02/2012, às 09:49, ik escreveu:
>>
>>> Hello,
>>>
>>> I have a code with a lot of loops and recursive calls.
>>> Somewhere at the code, at some point, I think I have an Off By One or
>>> something similar that happens that break my code.
>>> The question is, how would you suggest to compile such complicated
>>> calls to figure out where the problem/s exists ?
>> For debug that, would be nice to make some log of the behavior of the app, that i`ve been thinking this days, but in which doesn't get nothing at far as usable. Well you can make a lot of debugln to monitor the behavior of it to try to see where is the problem. But i`m freak sure is hard work.
> I have a lot of prints on the screen (stderr even). but I just can't
> figure out what am I missing. I know where it happens, and on what
> level, but not why.
>
For logging info on nested stuff. have a look at Debugln / DebuglnEnter
/ DebuglnExit (LclProc, trunk LazLogger)
Procedure Foo;
begin
DebuglnEnter('now in foo')
try // optional
Bar(Foo());
Debugln('123');
finally
DebuglnExit('leaving foo')
end
end;
All Debugln in the block are indented with 2 spaces per level (or
prefixed number, if more than 15 spaces)
So that gives a nice log
More information about the Lazarus
mailing list