assert in malloc.c:383

Joel Sherrill <joel@OARcorp.com> joel.sherrill at OARcorp.com
Fri Jan 14 15:23:14 UTC 2005


Karel Gardas wrote:
> Hello Bogdan,
> 
> there is small misunderstanding going here. When I asked if the assert(0)
> in free is really needed, I meant something like `is this situation really
> that critical that we should assert because of invalid invariant here'?
> The reason is that sometime I found my own code to be too restrictive and
> so some asserts might be removed during the later development phases,
> hence I asked if this assert is not just relict from the history which
> might be removed.

This discussion comes up periodically.  What do you do when the user
does something really bad or the system gets into a weird state?
Do you shutdown, print a message, return an error, etc.?

I suppose that since this is in the malloc family and I already lean 
toward some type of dynamic control over dynamic heap checking and
statistics, it would be reasonably OK to not assert and just keep 
moving.  This isn't a horrible error with RTEMS but very easily could
be one in the application.

But this is still indicative of a programming error in the application
which could be a hint at a very serious problem.  I would try to
find it but you could take out that line for now and just print
something so you can continue on with the porting.  You have the source.

--joel

> Thanks,
> Karel
> 
> On Fri, 14 Jan 2005, Bogdan Vacaliuc wrote:
> 
> 
>>>my question is: how to prevent it? Is assert on this place really needed,
>>>especially when I consider that you set errno on this place. What does
>>
>>In regards to your question on whether assert() is really needed, please
>>remember that assert() is typically (always!) a conditional macro, whose
>>code is eliminated by the definition of _NDEBUG.  Its operation is generally
>>a system halt with diagnostic output to enable you to identify the problem
>>quickly.
>>
>>Code written with assert() should not *rely* on assert() as the error
>>handling method; it is not that.  It is a *debugging* tool.
>>
>>Best Regards,
>>
>>-bogdan
>>
>>
>>
> 
> 
> --
> Karel Gardas                  kgardas at objectsecurity.com
> ObjectSecurity Ltd.           http://www.objectsecurity.com
> 


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985




More information about the users mailing list