Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread ik
On Wed, Feb 15, 2012 at 16:45, Martin  wrote:
> On 15/02/2012 13:01, ik wrote:
>>
>> On Wed, Feb 15, 2012 at 14:19, ik  wrote:
>>>
>>> On Wed, Feb 15, 2012 at 13:59, Everton Vieira
>>>  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.
>>
>> Simple debug conditions works. found the reason, but not what cause it :)
>
>
> If you know the variable, and where it first exists:
>
> trunk has watchpoints, so you can stop when the variable changes.
>
> Note depending on cpu, the number of watchpoints (and the possible size of
> value) vary.  he error is only given when trying to run/step.

Thanks. I finally figure out what happens. and It was off by 2 :)
I had an inc(Index, 2); without checking first if it required, and 99%
of the time it does, but 1% it does not, and that's the reason for the
bug.
I can dig now a hole to China :)

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

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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread Martin

On 15/02/2012 13:01, ik wrote:

On Wed, Feb 15, 2012 at 14:19, ik  wrote:

On Wed, Feb 15, 2012 at 13:59, Everton Vieira  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.

Simple debug conditions works. found the reason, but not what cause it :)


If you know the variable, and where it first exists:

trunk has watchpoints, so you can stop when the variable changes.

Note depending on cpu, the number of watchpoints (and the possible size 
of value) vary.  he error is only given when trying to run/step.


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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread Martin

On 15/02/2012 12:19, ik wrote:

On Wed, Feb 15, 2012 at 13:59, Everton Vieira  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


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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread Everton Vieira

Em 15/02/2012, às 11:01, ik escreveu:

> On Wed, Feb 15, 2012 at 14:19, ik  wrote:
>> On Wed, Feb 15, 2012 at 13:59, Everton Vieira  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.
> 
> Simple debug conditions works. found the reason, but not what cause it :)

I think you`ll have to go and see the three with its roots and so on that will 
happen to generate your problem.
I think only with that view would be able to solve it. Specially in a app with 
recursive behavior. That`s in some cases is a lot complex. So, my guess 
remains, a lot of debugln.

> 
>> 
>>> 
 
 I'm using Lazarus 0.9.31 r35319M FPC 2.5.1 x86_64-linux-gtk 2 if that's 
 helps
 
 Thanks,
 Ido
 
 --
 ___
 Lazarus mailing list
 Lazarus@lists.lazarus.freepascal.org
 http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>>> 
>>> 
>>> --
>>> ___
>>> Lazarus mailing list
>>> Lazarus@lists.lazarus.freepascal.org
>>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
> 
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread ik
On Wed, Feb 15, 2012 at 14:19, ik  wrote:
> On Wed, Feb 15, 2012 at 13:59, Everton Vieira  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.

Simple debug conditions works. found the reason, but not what cause it :)

>
>>
>>>
>>> I'm using Lazarus 0.9.31 r35319M FPC 2.5.1 x86_64-linux-gtk 2 if that's 
>>> helps
>>>
>>> Thanks,
>>> Ido
>>>
>>> --
>>> ___
>>> Lazarus mailing list
>>> Lazarus@lists.lazarus.freepascal.org
>>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>>
>>
>> --
>> ___
>> Lazarus mailing list
>> Lazarus@lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread ik
On Wed, Feb 15, 2012 at 13:59, Everton Vieira  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.

>
>>
>> I'm using Lazarus 0.9.31 r35319M FPC 2.5.1 x86_64-linux-gtk 2 if that's helps
>>
>> Thanks,
>> Ido
>>
>> --
>> ___
>> Lazarus mailing list
>> Lazarus@lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

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


Re: [Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread Everton Vieira
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'm using Lazarus 0.9.31 r35319M FPC 2.5.1 x86_64-linux-gtk 2 if that's helps
> 
> Thanks,
> Ido
> 
> --
> ___
> Lazarus mailing list
> Lazarus@lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


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


[Lazarus] i'm looking for tips on debugging deep nested code with recursive functions

2012-02-15 Thread ik
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 ?

I'm using Lazarus 0.9.31 r35319M FPC 2.5.1 x86_64-linux-gtk 2 if that's helps

Thanks,
Ido

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