View mode: basic / threaded / horizontal-split · Log in · Help
June 07, 2007
Strange behaviour
I just encountered a strange bug that I'm having problems reproducing as a 
test case.

I used an associative array to store some data lengths, and in my code, I 
was accessing an element not in the array. In debug mode, this code did not 
fire ArrayBoundsError and worked (returning 0 I guess), but in release mode 
it crashed. Any ideas why this might have happend?
June 07, 2007
Re: Strange behaviour
Simen Haugen schrieb am 2007-06-07:
> I just encountered a strange bug that I'm having problems reproducing as a 
> test case.
>
> I used an associative array to store some data lengths, and in my code, I 
> was accessing an element not in the array. In debug mode, this code did not 
> fire ArrayBoundsError and worked (returning 0 I guess), but in release mode 
> it crashed. Any ideas why this might have happend?

Did you check that "invariant", "unittest" and "in/out" of in/out/body
have no side effects appart from debugging output?

"aa[non_existant]" should allways throw an exception however
"non_existant in aa" simply returns null.

Thomas
June 07, 2007
Re: Strange behaviour
Thomas Kuehne wrote

> Did you check that

same for asserts.

-manfred
June 07, 2007
Re: Strange behaviour
"Thomas Kuehne" <thomas-dloop@kuehne.cn> wrote in message 
news:slrnf6gb6a.coh.thomas-
> Did you check that "invariant", "unittest" and "in/out" of in/out/body
> have no side effects appart from debugging output?

Yes.

> "aa[non_existant]" should allways throw an exception however
> "non_existant in aa" simply returns null.

Yes. The problem is that the exception wasnt raised in the debug build.
June 07, 2007
Re: Strange behaviour
Simen Haugen Wrote:
> I just encountered a strange bug that I'm having problems reproducing as a 
> test case.
> 
> I used an associative array to store some data lengths, and in my code, I 
> was accessing an element not in the array. In debug mode, this code did not 
> fire ArrayBoundsError and worked (returning 0 I guess), but in release mode 
> it crashed. Any ideas why this might have happend? 

Was the key to the AA a char[] and do you .dup the key when you store values?  If not, is it possible that you have modified the char[] you used for the key, this can have some unexpected results and behaviour.

That's all I can think of.

Regan Heath
June 08, 2007
Re: Strange behaviour
No, its an int[int] array

"Regan Heath" <regan@netmail.co.nz> wrote in message 
news:f4a2jm$7u2$1@digitalmars.com...
> Simen Haugen Wrote:
>> I just encountered a strange bug that I'm having problems reproducing as 
>> a
>> test case.
>>
>> I used an associative array to store some data lengths, and in my code, I
>> was accessing an element not in the array. In debug mode, this code did 
>> not
>> fire ArrayBoundsError and worked (returning 0 I guess), but in release 
>> mode
>> it crashed. Any ideas why this might have happend?
>
> Was the key to the AA a char[] and do you .dup the key when you store 
> values?  If not, is it possible that you have modified the char[] you used 
> for the key, this can have some unexpected results and behaviour.
>
> That's all I can think of.
>
> Regan Heath
Top | Discussion index | About this forum | D home