libumem uses fixed size pools so for example if you malloc 70 bytes umem will return a buffer which is 95 bytes. So maybe there is a buffer overrun. And with libumem the spare space gets clobbered. But with other libraries the start of another buffer gets clobbered. I think that's most likely what is happening.
Use C++ stl strings instead of c char arrays maybe :) Try running with umem debug. preload like this: UMEM_DEBUG=default UMEM_LOGGING=transaction LD_PRELOAD=libumem.so.1 <your cmd> ::umem_verify will check for corruption just over the end of buffers. ::umem_status will show details and stack if umem exited because of buffer corruption James. Jan Kopriva wrote: > Hi all, > > I have a strange problem. A utility I am using sometimes coredumps > SIGSEGV. If I use it with libumem preloaded it works perfectly. > Is there any debugging technique I can use in such cases? > > Thanks > > Jan > _______________________________________________ > mdb-discuss mailing list > mdb-discuss at opensolaris.org