|
From: Bryan M. <om...@br...> - 2006-09-02 21:42:22
|
Fellow Valgrinders, please see http://www.brainmurders.eclipse.co.uk/omega.html for a complete overview of what this tool can do for you! (We use this heavily at work - feel free to give it a spin...) >From the web page: ================== Omega addresses what I perceive to be one of the few shortfalls of the excellent Valgrind Memcheck Tool - where Memcheck reports the location that a leaked block was allocated, Omega also shows where it was leaked. New in Beta5: ============= Aggregates the circular references together into common contexts, giving a repeat count and leak amount for that context and makes display optional. Broke the debugger attach :( On the positive side, it gives much more accurate leak reports in some cases, having finally closed off some edge cases with functions that return values. A reported bug with realloc() on x86 (not x86-64) was also fixed (thanks for the report). Exposed some internal sizing information for users with HUGE programs to tweak for potentially faster execution. The next patch is likely to be a release candidate unless you find me some juicy bugs to chomp on. Known Issues: ============= I have a wrapper around main() to detect when to stop tracking - if you are using threads and they don't exit before main() does, there will be problems. I haven't particularly tested this with threads yet - that's targeted for the later on. It can also affect the stack trace slightly. Requested Features? =================== I am still toying with the idea of allowing targeted tracking through the use of the suppression system - exclusively report on a specified malloc() call. show hanging pointers at a targeted call to free(). turn on more verbose output for a given memory block. Generate leak reports in some XML format to make machine parsing simple. If you use Omega and think any of these features would be useful or have requests of your own, please let me know. As ever, I would welcome your comments, bug reports and especially any news of success stories. Please share them with us on the list and copy me in so I don't miss them. thanks and happy hunting, Bryan "Brain Murders" Meredith |
|
From: Gurganus, B. L <gur...@ro...> - 2006-09-03 02:24:41
|
It is probably outside the scope of Omega and Memcheck, but there are = resource allocators at higher levels than malloc/free pairs that would = be nice to check, preferrably in an easily extensible fashion. I'd like = to see a way of specifying resource allocators and deallocators that are = from somebody else's code. For example, I'd like a tool that handles = finding unmatched malloc/free, fopen/fclose, open/close, = XOpenDisplay/XCloseDisplay, etc. Brant Gurganus http://www.rose-hulman.edu/~gurganbl -----Original Message----- From: val...@li... on behalf of = Bryan Meredith Sent: Sat 09/02/06 5:41 PM To: val...@li...; = val...@li... Subject: [Valgrind-developers] Omega - Beta 5 Announcement =20 Fellow Valgrinders, please see http://www.brainmurders.eclipse.co.uk/omega.html for a complete overview of what this tool can do for you! (We use this heavily at work - feel free to give it a spin...) >From the web page: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Omega addresses what I perceive to be one of the few shortfalls of the excellent Valgrind Memcheck Tool - where Memcheck reports the location that a leaked block was allocated, Omega also shows where it was leaked. New in Beta5: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Aggregates the circular references together into common contexts, giving a repeat count and leak amount for that context and makes display = optional. Broke the debugger attach :( On the positive side, it gives much more accurate leak reports in some cases, having finally closed off some edge cases with functions that return values. A reported bug with realloc() on x86 (not x86-64) was also fixed (thanks for the report). Exposed some internal sizing information for users with HUGE programs to tweak for potentially faster execution. The next patch is likely to be a release candidate unless you find me some juicy bugs to chomp on. Known Issues: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I have a wrapper around main() to detect when to stop tracking - if you are using threads and they don't exit before main() does, there will be problems. I haven't particularly tested this with threads yet - that's targeted for the later on. It can also affect the stack trace slightly. Requested Features? =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I am still toying with the idea of allowing targeted tracking through the use of the suppression system - exclusively report on a specified malloc() call. show hanging pointers at a targeted call to free(). turn on more verbose output for a given memory block. Generate leak reports in some XML format to make machine parsing simple. If you use Omega and think any of these features would be useful or have requests of your own, please let me know. As ever, I would welcome your comments, bug reports and especially any news of success stories. Please share them with us on the list and copy me in so I don't miss them. thanks and happy hunting, Bryan "Brain Murders" Meredith -------------------------------------------------------------------------= Using Tomcat but need to do more? Need to support web services, = security? Get stuff done quickly with pre-integrated technology to make your job = easier Download IBM WebSphere Application Server v.1.0.1 based on Apache = Geronimo http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D= 121642 _______________________________________________ Valgrind-developers mailing list Val...@li... https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Nicholas N. <nj...@cs...> - 2006-09-03 02:37:32
|
On Sat, 2 Sep 2006, Gurganus, Brant L wrote: > It is probably outside the scope of Omega and Memcheck, but there are > resource allocators at higher levels than malloc/free pairs that would be > nice to check, preferrably in an easily extensible fashion. I'd like to > see a way of specifying resource allocators and deallocators that are from > somebody else's code. For example, I'd like a tool that handles finding > unmatched malloc/free, fopen/fclose, open/close, > XOpenDisplay/XCloseDisplay, etc. That's a good idea for a separate tool. I think this would make a great project for someone. I don't think it would be that difficult. I can imagine having a configuration file where you name the alloc/dealloc function pairs. Those examples all follow the following pattern in their type signatures: token alloc(...) ... dealloc(token t) You'd need a way to handle cases where alloc() fails (eg. open() returns -1). You might also need to handle some slight variations on the above (eg. an extra arg to the dealloc function). You'd implement it in Valgrind using function wrapping to know when the alloc/dealloc functions are called. I think Coverity's tools can do this kind of thing, but they use a completely different technique to Valgrind -- static source-level analysis using model checking, as opposed to dynamic binary analysis. Nick |
|
From: Bryan M. <om...@br...> - 2006-09-06 21:19:13
|
Just found an interesting bug in the new function return tracking when using C++. Don't think that C will be affected as you can't do anything like the stuff you can do inside a class constructor. Any C++ users out there getting an error like this before your program actually even gets into main() ?: ==4018== Process terminating with default action of signal 11 (SIGSEGV) ==4018== Access not within mapped region at address 0xFFFFFFFFFFFFFFF8 If so, I'm on it and hope to have a proper solution in the next day or two (I'm ill at the moment so things have slowed down a bit). I know what it is but I will be chatting with the guys on the developer list to get a proper solution together that will always work. Sorry for the inconvenience, Bryan "Brain Murders" Meredith Bryan Meredith wrote: > Fellow Valgrinders, > > please see http://www.brainmurders.eclipse.co.uk/omega.html for a > complete overview of what this tool can do for you! > > (We use this heavily at work - feel free to give it a spin...) > >>From the web page: > ================== > Omega addresses what I perceive to be one of the few shortfalls of the > excellent Valgrind Memcheck Tool - where Memcheck reports the location > that a leaked block was allocated, Omega also shows where it was leaked. > > > New in Beta5: > ============= > Aggregates the circular references together into common contexts, giving > a repeat count and leak amount for that context and makes display optional. > Broke the debugger attach :( > On the positive side, it gives much more accurate leak reports in some > cases, having finally closed off some edge cases with functions that > return values. > A reported bug with realloc() on x86 (not x86-64) was also fixed (thanks > for the report). > Exposed some internal sizing information for users with HUGE programs to > tweak for potentially faster execution. > > The next patch is likely to be a release candidate unless you find me > some juicy bugs to chomp on. > > > Known Issues: > ============= > I have a wrapper around main() to detect when to stop tracking - if you > are using threads and they don't exit before main() does, there will be > problems. I haven't particularly tested this with threads yet - that's > targeted for the later on. It can also affect the stack trace slightly. > > > Requested Features? > =================== > I am still toying with the idea of allowing targeted tracking through > the use of the suppression system - > > exclusively report on a specified malloc() call. > show hanging pointers at a targeted call to free(). > turn on more verbose output for a given memory block. > > Generate leak reports in some XML format to make machine parsing simple. > > > If you use Omega and think any of these features would be useful or have > requests of your own, please let me know. > > > As ever, I would welcome your comments, bug reports and especially any > news of success stories. Please share them with us on the list and copy > me in so I don't miss them. > > thanks and happy hunting, > Bryan "Brain Murders" Meredith > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Bryan M. <om...@br...> - 2006-09-08 21:04:40
|
hmmmmm. compiling the C++ program with -D_GLIBCXX_DEBUG showed the code to have bad initialisers for a couple of iterators (I really recommend this compile time define - its great!). I haven't been able to recreate this fault with a small program yet but it is interesting because the original program ran OK both on its own and within Memcheck. I will keep trying to get to the bottom of this but if you have C++ programs using the STL and they go bang under Omega, see if they abort when running them normally but after compiling with the above define set. (If they do abort when running normally, start them inside gdb and it will give you a useful stack trace to help you sort out your naughty code :P). If anyone can find a trivial example that causes Omega to go bang but not Memcheck, I would really appreciate it if you would post it to the list. for information: $> rpm -qa | grep libstd libstdc++-devel-4.1.0-25 libstdc++-4.1.0-25 compat-libstdc++-5.0.7-21 This is on Suse 10.1, x86_64. thanks in advance and happy hunting, Bryan "Brain Murders" Meredith Bryan Meredith wrote: > Just found an interesting bug in the new function return tracking when > using C++. Don't think that C will be affected as you can't do anything > like the stuff you can do inside a class constructor. > > Any C++ users out there getting an error like this before your program > actually even gets into main() ?: > > ==4018== Process terminating with default action of signal 11 (SIGSEGV) > ==4018== Access not within mapped region at address 0xFFFFFFFFFFFFFFF8 > > If so, I'm on it and hope to have a proper solution in the next day or > two (I'm ill at the moment so things have slowed down a bit). I know > what it is but I will be chatting with the guys on the developer list to > get a proper solution together that will always work. > > Sorry for the inconvenience, > Bryan "Brain Murders" Meredith > > Bryan Meredith wrote: >> Fellow Valgrinders, >> >> please see http://www.brainmurders.eclipse.co.uk/omega.html for a >> complete overview of what this tool can do for you! >> >> (We use this heavily at work - feel free to give it a spin...) >> >> >From the web page: >> ================== >> Omega addresses what I perceive to be one of the few shortfalls of the >> excellent Valgrind Memcheck Tool - where Memcheck reports the location >> that a leaked block was allocated, Omega also shows where it was leaked. >> >> >> New in Beta5: >> ============= >> Aggregates the circular references together into common contexts, giving >> a repeat count and leak amount for that context and makes display optional. >> Broke the debugger attach :( >> On the positive side, it gives much more accurate leak reports in some >> cases, having finally closed off some edge cases with functions that >> return values. >> A reported bug with realloc() on x86 (not x86-64) was also fixed (thanks >> for the report). >> Exposed some internal sizing information for users with HUGE programs to >> tweak for potentially faster execution. >> >> The next patch is likely to be a release candidate unless you find me >> some juicy bugs to chomp on. >> >> >> Known Issues: >> ============= >> I have a wrapper around main() to detect when to stop tracking - if you >> are using threads and they don't exit before main() does, there will be >> problems. I haven't particularly tested this with threads yet - that's >> targeted for the later on. It can also affect the stack trace slightly. >> >> >> Requested Features? >> =================== >> I am still toying with the idea of allowing targeted tracking through >> the use of the suppression system - >> >> exclusively report on a specified malloc() call. >> show hanging pointers at a targeted call to free(). >> turn on more verbose output for a given memory block. >> >> Generate leak reports in some XML format to make machine parsing simple. >> >> >> If you use Omega and think any of these features would be useful or have >> requests of your own, please let me know. >> >> >> As ever, I would welcome your comments, bug reports and especially any >> news of success stories. Please share them with us on the list and copy >> me in so I don't miss them. >> >> thanks and happy hunting, >> Bryan "Brain Murders" Meredith >> >> >> >> ------------------------------------------------------------------------- >> Using Tomcat but need to do more? Need to support web services, security? >> Get stuff done quickly with pre-integrated technology to make your job easier >> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> Valgrind-developers mailing list >> Val...@li... >> https://lists.sourceforge.net/lists/listinfo/valgrind-developers >> > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |