[Dcmlib] SIEMENS_GBS_III-16-ACR_NEMA_1.acr sur MacOSX
Mathieu Malaterre
mathieu.malaterre at kitware.com
Wed Nov 3 23:09:37 CET 2004
Salut,
Bonne nouvelle si j'enleve l'image SIEMENS_GBS_III-16-ACR_NEMA_1.acr (=
je la blacklist). Les tests passent sans seg fault sur Mac.
On dirait que l'on ne fais pas quelque chose de bien beau. valgrind se
plaint aussi de chose bizarre (*). Tout ce que l'on fais c'est de lire
un morceau de fichier. J'ai affiche' la taille du morceau a lire:
PixelDataLength:132096
Pareil sur MacOSX. Est-ce que quelqu'un peut me confirmer que la taille
est valide ?
Merci
Mathieu
Ps: j'ai changer l'interface de TestReadWriteReadCompare on peux
l'executer fichier par fichier maintenant:
$ gdcmTests TestReadWriteReadCompare SIEMENS_GBS_III-16-ACR_NEMA_1.acr
output.dcm
(*)
$ purify /home/malaterre/Creatis/gdcmbin/bin/gdcmTests
TestReadWriteReadCompare
/home/malaterre/Creatis/gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr foo.dcm
==20362== Memcheck, a memory error detector for x86-linux.
==20362== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==20362== Using valgrind-2.3.0.CVS, a program supervision framework for
x86-linux.
==20362== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==20362== For more details, rerun with: -v
==20362==
Testing:
/home/malaterre/Creatis/gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr
PixelDataLength:132096
==20362== Invalid write of size 1
==20362== at 0x3065E3C: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6ADC8 is 0 bytes after a block of size 131072
alloc'd
==20362== at 0x1B9040FD: operator new[](unsigned)
(vg_replace_malloc.c:138)
==20362== by 0x1BD7E967: gdcm::PixelConvert::AllocateDecompressed()
(gdcmPixelConvert.cxx:96)
==20362== by 0x1BD7FF97:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:585)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362==
==20362== Invalid write of size 1
==20362== at 0x1B9039A2: memcpy (mac_replace_strmem.c:285)
==20362== by 0x3065DFA: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6B1C7 is not stack'd, malloc'd or (recently) free'd
==20362==
==20362== Invalid write of size 1
==20362== at 0x1B9039A8: memcpy (mac_replace_strmem.c:286)
==20362== by 0x3065DFA: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6B1C6 is not stack'd, malloc'd or (recently) free'd
==20362==
==20362== Invalid write of size 1
==20362== at 0x1B9039AE: memcpy (mac_replace_strmem.c:287)
==20362== by 0x3065DFA: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6B1C5 is not stack'd, malloc'd or (recently) free'd
==20362==
==20362== Invalid write of size 1
==20362== at 0x1B9039B7: memcpy (mac_replace_strmem.c:288)
==20362== by 0x3065DFA: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6B1C4 is not stack'd, malloc'd or (recently) free'd
==20362==
==20362== Invalid write of size 1
==20362== at 0x1B9039CB: memcpy (mac_replace_strmem.c:292)
==20362== by 0x3065DFA: std::basic_streambuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30294B8: std::basic_filebuf<char,
std::char_traits<char> >::xsgetn(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x30336A8: std::istream::read(char*, int) (in
/usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD800C9:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:612)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
==20362== Address 0x1CE6ADCB is 3 bytes after a block of size 131072
alloc'd
==20362== at 0x1B9040FD: operator new[](unsigned)
(vg_replace_malloc.c:138)
==20362== by 0x1BD7E967: gdcm::PixelConvert::AllocateDecompressed()
(gdcmPixelConvert.cxx:96)
==20362== by 0x1BD7FF97:
gdcm::PixelConvert::ReadAndDecompressPixelData(std::basic_ifstream<char,
std::char_traits<char> >*) (gdcmPixelConvert.cxx:585)
==20362== by 0x1BD71DE3: gdcm::File::GetDecompressed() (gdcmFile.cxx:509)
==20362== by 0x1BD712AF: gdcm::File::GetImageData() (gdcmFile.cxx:303)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
valgrind: vg_malloc2.c:151 (mk_plain_bszB): Assertion `bszB != 0' failed.
==20362== at 0xB0029ED6: vgPlain_skin_assert_fail (vg_mylibc.c:1140)
==20362== by 0xB0029ED5: assert_fail (vg_mylibc.c:1136)
==20362== by 0xB0029F13: vgPlain_core_assert_fail (vg_mylibc.c:1147)
==20362== by 0xB00269C0: vgPlain_arena_malloc (vg_malloc2.c:1031)
==20362== by 0xB00271D4: vgPlain_cli_malloc (vg_malloc2.c:1372)
==20362== by 0xB115B94F: vgSkin___builtin_new (mac_malloc_wrappers.c:175)
sched status:
Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0
==20362== at 0x1B903EBF: operator new(unsigned) (vg_replace_malloc.c:132)
==20362== by 0x3064C88: std::__default_alloc_template<true,
0>::allocate(unsigned) (in /usr/lib/libstdc++.so.5.0.5)
==20362== by 0x306A5A7: std::string::_Rep::_S_create(unsigned,
std::allocator<char> const&) (in /usr/lib/libstdc++.so.5.0.5)
==20362== by 0x306B2EE: (within /usr/lib/libstdc++.so.5.0.5)
==20362== by 0x3067AC8: std::string::string(char const*,
std::allocator<char> const&) (in /usr/lib/libstdc++.so.5.0.5)
==20362== by 0x1BD86DA5: gdcm::Util::Format(char const*, ...)
(gdcmUtil.cxx:48)
==20362== by 0x1BD5D37F: gdcm::DictEntry::TranslateToKey(unsigned
short, unsigned short) (gdcmDictEntry.cxx:64)
==20362== by 0x1BD65ED5: gdcm::Document::GetDocEntryByNumber(unsigned
short, unsigned short) (gdcmDocument.cxx:1182)
==20362== by 0x1BD76AF6: gdcm::Header::HasLUT() (gdcmHeader.cxx:1062)
==20362== by 0x1BD712D0: gdcm::File::GetImageData() (gdcmFile.cxx:310)
==20362== by 0x80544AE: CompareInternal(std::string const&,
std::string const&) (TestReadWriteReadCompare.cxx:27)
==20362== by 0x8054984: TestReadWriteReadCompare(int, char**)
(TestReadWriteReadCompare.cxx:116)
==20362== by 0x805149A: main (gdcmTests.cxx:193)
Note: see also the FAQ.txt in the source distribution.
It contains workarounds to several common problems.
If that doesn't help, please report this bug to: valgrind.kde.org
In the bug report, send all the above text, the valgrind
version, and what Linux distro you are using. Thanks.
More information about the Dcmlib
mailing list