Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   memmory corruption (http://www.velocityreviews.com/forums/t627583-memmory-corruption.html)

mohi 07-25-2008 05:04 PM

memmory corruption
 
hello everyone ,
is there any cmmnd in gdb or any other way to find out whats the total
dynamically allocated memory
a process holds at various instances of execution???

and what can be the possible reasons of an error like

glibc detected:malloc() memory corruption

when the program executes almost the same function abt 2000 times with
no error
it does use dynamically alloted space and free it at every function
call


thank you very much


James Kanze 07-25-2008 09:19 PM

Re: memmory corruption
 
On Jul 25, 7:15 pm, Victor Bazarov <v.Abaza...@comAcast.net> wrote:
> mohi wrote:

[...]
> > glibc detected:malloc() memory corruption


> Buffer overrun, double deletion of memory, attempt to use
> dynamic memory after it has been deleted, allocation using
> 'new[]' then deletion using 'delete' instead of 'delete[]'...


Just about any undefined behavior could in theory cause it.
Using an uninitialized pointer, for example.

> > when the program executes almost the same function abt 2000
> > times with no error it does use dynamically alloted space
> > and free it at every function call


> If you are sure allocations and deallocations are correctly
> paired up, then it probably isn't that particular function...


Back in the old days (in C), about 50% of the time, this was
caused by someone allocating strlen(s) bytes, then using strcpy
to copy into the allocated memory. I you're using C++
correctly (std::string, std::vector, etc.), those sort of
problems should be close to non-existant, but if he's got an
array new anywhere, it's a likely candidate. Another
possibility is that something didn't get recompiled when a
header was modified. So the size of a class changes, but the
operator new uses the old size.

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


All times are GMT. The time now is 02:00 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.