[Insight-developers] NrrdIO missing name magling

Bradley Lowekamp blowekamp at mail.nih.gov
Tue Nov 20 09:47:31 EST 2012


Hello,

I was looking at suppressing some new Valgrind error on SimpleITK (then my new ITK valgrind build), that sprung up after the NrrdIO update:

http://open.cdash.org/viewDynamicAnalysis.php?buildid=2673721

I had these suppressed before. But they came back... Looking at them closer I think it reveals a problem with certain symbols what were mangled before the update, but now are not. For example the following valgrind error:

b>UMC</b> ==27272== Conditional jump or move depends on uninitialised value(s)
==27272==    at 0x1E2C9D27: _nrrdReadNrrdParse_space_directions (parseNrrd.c:550)
==27272==    by 0x1E2D3881: _nrrdFormatNRRD_read (formatNRRD.c:469)
==27272==    by 0x1E2CEB3C: itk__nrrdRead (read.c:441)
==27272==    by 0x1E2CECED: itk_nrrdRead (read.c:482)
==27272==    by 0x1E2CF03D: itk_nrrdLoad (read.c:628)
==27272==    by 0x1E094C2B: itk::NrrdImageIO::ReadImageInformation() (itkNrrdImageIO.cxx:250)
==27272==    by 0x553AE8A: itk::simple::ImageReaderBase::GetImageIOBase(std::string const&amp;) (sitkImageReaderBase.cxx:55)
==27272==    by 0x553AF13: itk::simple::ImageReaderBase::GetPixelIDFromImageIO(std::string const&amp;, int&amp;, unsigned int&amp;) (sitkImageReaderBase.cxx:67)
==27272==    by 0x52C8A93: itk::simple::ImageFileReader::Execute() (sitkImageFileReader.cxx:59)
==27272==    by 0x6E17EF: BasicFilters_ConstantPad_more_Test::TestBody() (sitkConstantPadImageFilterTest.cxx:171)
==27272==    by 0xA518C3: void testing::internal::HandleSehExceptionsInMethodIfSupported&lt;testing::Test, void&gt;(testing::Test*, void (testing::Test::*)(), char const*) (gtest-all.cc:3394)
==27272==    by 0xA4CF0D: void testing::internal::HandleExceptionsInMethodIfSupported&lt;testing::Test, void&gt;(testing::Test*, void (testing::Test::*)(), char const*) (gtest-all.cc:3430)
==27272==    by 0xA3927D: testing::Test::Run() (gtest-all.cc:3466)
==27272==    by 0xA39AB7: testing::TestInfo::Run() (gtest-all.cc:3642)
==27272==    by 0xA3A0E3: testing::TestCase::Run() (gtest-all.cc:3749)
==27272==    by 0xA3F466: testing::internal::UnitTestImpl::RunAllTests() (gtest-all.cc:5541)
==27272==    by 0xA52C38: bool testing::internal::HandleSehExceptionsInMethodIfSupported&lt;testing::internal::UnitTestImpl, bool&gt;(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest-all.cc:3394)
==27272==    by 0xA4DC84: bool testing::internal::HandleExceptionsInMethodIfSupported&lt;testing::internal::UnitTestImpl, bool&gt;(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest-all.cc:3430)
==27272==    by 0xA3DFF0: testing::UnitTest::Run() (gtest-all.cc:5178)
==27272==    by 0x58C0D4: main (SimpleITKUnitTestDriver.cxx:50)


The first two symbols there use to be proceeded with itk. So I don't think they are correctly mangled. The last commit to the file itk_NrrdIO_magle.h reveal a suspiciously large number of symbols being removed:

http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=a264fff5a637a223b54d4e1aaa425411a9cee617#patch36

I am guessing that the mangle perl script was run on OSX, and needs to be also run on linux to be complete. If anyone else know more about this please speak up.

Thanks,
Brad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-developers/attachments/20121120/8f186f21/attachment-0001.htm>


More information about the Insight-developers mailing list