1 / 16

ITK/GDCM Memory Leak

Jon Zolla (zollaj@rpi.edu) Open Source Software, Group 10 December 4, 2008. ITK/GDCM Memory Leak. Overview. ITK/DICOM/GDCM overview Goals Tools Process Bug Details Results What I Learned. ITK . Image Segmentation and Registration toolkit BSD Licensed

lyndon
Download Presentation

ITK/GDCM Memory Leak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jon Zolla (zollaj@rpi.edu) Open Source Software, Group 10 December 4, 2008 ITK/GDCM Memory Leak

  2. Overview • ITK/DICOM/GDCM overview • Goals • Tools • Process • Bug Details • Results • What I Learned

  3. ITK • Image Segmentation and Registration toolkit • BSD Licensed • We've heard a lot about this one already...

  4. DICOM • Digital Imaging and Communications in Medicine • Standard for storage/transmission/etc. Of medical images • Both a file format and network protocol • Extremely widespread usage

  5. GDCM • Grassroots DICOM • Originally named Gnu DiCoM • Open source cross platform library for DICOM files • BSD Licensed • C++ • Bundled inside of ITK

  6. Goals • Fix memory leak in GDCM • Specifically the version utilized by ITK • Occurred during loading of DICOM files

  7. Valgrind • Tool for memory leak detection, profiling, etc. • Generic framework for dynamic analysis tools • This project utilized memory leak detection (Memcheck) • Can be used on any executable • Greatly degrades performance • Quick Demo

  8. Process • Obtain/build ITK Source • Find GDCM source • Use Valgrind to find memory leak • Investigate code to find source of leak • Fix leak and contribute back

  9. Bug Details • Valgrind Output

  10. Bug Details • Valgrind Output

  11. Bug Details • DocEntrySet::NewSeqEntry

  12. Bug Details • Document::ParseDES

  13. Bug Details • Document::ParseDES

  14. Bug Details • ElementSet::RemoveEntry

  15. Results • Sucessfully fixed the issue • Problem already solved • Discovered after a CVS update • Traced back to a bug online • http://www.itk.org/Bug/view.php?id=7004 • Bug submitted 5/13, with proposed fix

  16. What I Learned • Valgrind is really cool • How to use Cmake • Got acquainted with large open source project • Communicate with project developers before contributing • Mailing lists, etc.

More Related