<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1458" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2>Je viens de
m'occuper de ce problème. TestReadWriteReadCompare normalement
passe.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Par contre, j'ai toujours des problèmes avec le
ShowDicom...</FONT></DIV>
<DIV><FONT face=Arial size=2>J'ai constaté le phénomène suivant :</FONT></DIV>
<DIV><FONT face=Arial size=2> - on récupère la HashTable des tags du header
(par référence... tres important) : méthode GetTagHT</FONT></DIV>
<DIV><FONT face=Arial size=2> - on essaye de parcourir cette hash table et
cela plante.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Si on essaye de passer la hash table par copie
(donc sans la référence) alors cela plante directement</FONT></DIV>
<DIV><FONT face=Arial size=2>à l'appel de cette méthode. J'avais déjà vu cela
concernant les objets de la STL avec MSVC6 (toute </FONT></DIV>
<DIV><FONT face=Arial size=2>plateforme confondue). Et c'etait dû à des
problèmes de link incremental.</FONT></DIV>
<DIV><FONT face=Arial size=2>Si quelqu'un en sait plus la dessus... je suis
preneur de toute information. Merci.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Benoit</FONT></DIV>
<DIV><FONT face=Arial size=2> </DIV>
<DIV><BR></DIV></FONT>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=jean-michel.rouet@philips.com
href="mailto:jean-michel.rouet@philips.com">jean-michel.rouet@philips.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=mathieu.malaterre@kitware.com
href="mailto:mathieu.malaterre@kitware.com">Mathieu Malaterre</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=dcmlib@creatis.insa-lyon.fr
href="mailto:dcmlib@creatis.insa-lyon.fr">Mailing list gdcm</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, November 10, 2004 9:59
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Dcmlib] gdcm version 0.6:
correction</DIV>
<DIV><BR></DIV><BR><FONT face=sans-serif size=2>Bonjour Mathieu,</FONT>
<BR><BR><FONT face=sans-serif size=2>On 09/11/2004 21:09:59 Mathieu Malaterre
wrote:<BR>><BR>>Qu'est-ce que tu entends par probleme. Ca passe bien sur
toutes les<BR>>machines (ou presque). Est-ce que c'est un warning avec
valgrind ?<BR>></FONT> <BR><BR><FONT face=sans-serif size=2>Mon probleme
est le suivant: ctest ne passe pas, j'ai un segfault sur windows 2000 (la
mémoire ne peut pas etre "written"), car</FONT> <BR><BR><FONT face=sans-serif
size=2>Le membre Decompressed est alloué avec une longeur
DecompressedSize</FONT> <BR><FONT face=sans-serif size=2>En ensuite le tableau
est rempli a l'aide d'un fread sur une longeur PixelDataLength</FONT>
<BR><BR><FONT face=sans-serif size=2>En dans le cas de l'image
siemens_gbs_iii-16-acr_nema_1.acr, il se trouve que PixelDataLength >
DecompressedSize</FONT> <BR><FONT face=sans-serif size=2>donc on lit plus de
donnée (je ne parle pas de pb de debordement en fin de fichier) que le tableau
ne peut en contenir, d'ou un debordement de tableau</FONT> <BR><BR><FONT
face=sans-serif size=2>Je suis le seul a observer ce probleme ?</FONT>
<BR><FONT face=sans-serif size=2>Est-ce un probleme du a CVS pour recuperer
les images binaires dans gdcmData ?</FONT> <BR><FONT face=sans-serif
size=2>J'ai vu a ce propos un mail ce matin concernant les -kb -ko pour les
fichiers binaires. Il serait peut interessant, pour etre sur que l'on dispose
des bonnes images, de commiter egalement le checksum md5 des images binaires.
</FONT><BR><FONT face=sans-serif size=2>dans mon cas: </FONT><BR><BR><FONT
face=sans-serif size=2>$ md5sum
./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr</FONT> <BR><FONT face=sans-serif
size=2>83c49fddf19b535867567720dfa97b07
*./gdcmData/SIEMENS_GBS_III-16-ACR_NEMA_1.acr</FONT> <BR><BR><BR><FONT
face=sans-serif size=2>Je n'utilise pas valgrind, mais Rational Purify. Lui
aussi se plaint:</FONT> <BR><BR><FONT face=sans-serif size=2><B>[E] ABW: Array
bounds write in memcpy {1 occurrence}</B></FONT> <BR><FONT face=sans-serif
size=2> Writing 4095 bytes to 0x043a2ff9 (512 bytes at 0x043a3df8
illegal)</FONT> <BR><FONT face=sans-serif size=2> Address
0x043a2ff9 is 127489 bytes into a 131072 byte block at 0x04383df8</FONT>
<BR><FONT face=sans-serif size=2> Address 0x043a2ff9 points to a
C++ new block in heap 0x04190000</FONT> <BR><FONT face=sans-serif
size=2> Thread ID: 0x888</FONT> <BR><FONT face=sans-serif
size=2> <B> Error location</B></FONT> <BR><FONT face=sans-serif
size=2> memcpy
[MSVCP71D.dll]</FONT> <BR><FONT face=sans-serif size=2>
std::char_traits<char>::copy(char *,char const*,UINT)
[iosfwd:448]</FONT> <BR><FONT face=sans-serif size=2>
std::basic_streambuf<char,char_traits<char>::std>::xsgetn(char
*,int) [streambuf:302]</FONT> <BR><FONT face=sans-serif size=2>
std::basic_streambuf<char,char_traits<char>::std>::sgetn(char
*,int) [streambuf:113]</FONT> <BR><FONT face=sans-serif size=2>
std::basic_istream<char,char_traits<char>::std>::read(char *,int)
[istream:657]</FONT> <BR><FONT face=sans-serif size=2>
gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std
*) [gdcmpixelconvert.cxx:612]</FONT> <BR><FONT face=sans-serif size=2>
}</FONT> <BR><FONT
face=sans-serif size=2>
else if ( IsDecompressed )</FONT> <BR><FONT face=sans-serif
size=2> {</FONT>
<BR><FONT face=sans-serif size=2><B> =>
fp->read( (char*)Decompressed,
PixelDataLength);</B></FONT> <BR><FONT face=sans-serif size=2>
if ( fp->fail() ||
fp->eof())//Fp->gcount() == 1</FONT> <BR><FONT face=sans-serif
size=2> {</FONT>
<BR><FONT face=sans-serif size=2>
dbg.Verbose( 0,
"PixelConvert::ReadAndDecompressPixelData: "</FONT> <BR><FONT face=sans-serif
size=2> gdcm::File::GetDecompressed(void)
[gdcmfile.cxx:515]</FONT> <BR><FONT face=sans-serif size=2>
gdcm::File::GetImageData(void) [gdcmfile.cxx:309]</FONT>
<BR><FONT face=sans-serif size=2> main
[testreadwritereadcompare.cxx:57]</FONT> <BR><FONT
face=sans-serif size=2> mainCRTStartup
[crtexe.c:398]</FONT> <BR><FONT face=sans-serif size=2>
_safe_se_handler_count [TestReadWriteReadCompare.exe]</FONT> <BR><FONT
face=sans-serif size=2> <B> Allocation location</B></FONT>
<BR><FONT face=sans-serif size=2> new(UINT)
[newop.cpp:10]</FONT> <BR><FONT face=sans-serif size=2>
<>=(UINT) [newaop.cpp:7]</FONT>
<BR><FONT face=sans-serif size=2>
gdcm::PixelConvert::AllocateDecompressed(void)
[gdcmpixelconvert.cxx:97]</FONT> <BR><FONT face=sans-serif size=2>
delete []
Decompressed;</FONT> <BR><FONT face=sans-serif size=2>
}</FONT> <BR><FONT face=sans-serif size=2>
</FONT><BR><FONT face=sans-serif
size=2><B> => Decompressed = new
uint8_t[ DecompressedSize ];</B></FONT> <BR><FONT face=sans-serif
size=2> }</FONT> <BR><FONT
face=sans-serif size=2>
</FONT><BR><FONT face=sans-serif size=2>
/**</FONT> <BR><FONT face=sans-serif size=2>
gdcm::PixelConvert::ReadAndDecompressPixelData(basic_ifstream<char,char_traits<char>::std>::std
*) [gdcmpixelconvert.cxx:586]</FONT> <BR><FONT face=sans-serif size=2>
gdcm::File::GetDecompressed(void)
[gdcmfile.cxx:515]</FONT> <BR><FONT face=sans-serif size=2>
gdcm::File::GetImageData(void) [gdcmfile.cxx:309]</FONT>
<BR><FONT face=sans-serif size=2> main
[testreadwritereadcompare.cxx:57]</FONT> <BR><FONT
face=sans-serif size=2> mainCRTStartup
[crtexe.c:398]</FONT> <BR><FONT face=sans-serif size=2>
_safe_se_handler_count [TestReadWriteReadCompare.exe]</FONT>
<BR><BR><BR><BR><BR><BR><FONT face=sans-serif size=2>Le titre de ce mail est
peut etre trompeur car je teste la version "courante" de cvs (updaté
hier).</FONT> <BR><BR><BR><FONT face=sans-serif size=2>./src/gdcmBinEntry.cxx:
$Revision: 1.35 $</FONT> <BR><FONT
face=sans-serif size=2>./src/gdcmDebug.cxx:
$Revision: 1.10 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDicomDir.cxx:
$Revision: 1.77 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDicomDirElement.cxx: $Revision: 1.22
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmDicomDirImage.cxx:
$Revision: 1.13 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDicomDirMeta.cxx: $Revision: 1.14
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmDicomDirObject.cxx:
$Revision: 1.7 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDicomDirPatient.cxx: $Revision: 1.18
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmDicomDirSerie.cxx:
$Revision: 1.20 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDicomDirStudy.cxx: $Revision: 1.17
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmDict.cxx:
$Revision: 1.51 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDictEntry.cxx:
$Revision: 1.28 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDictSet.cxx: $Revision: 1.44 $</FONT>
<BR><FONT face=sans-serif size=2>./src/gdcmDirList.cxx:
$Revision: 1.25 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDocEntry.cxx:
$Revision: 1.29 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmDocEntrySet.cxx: $Revision:
1.25 $</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmDocument.cxx:
$Revision: 1.118 $</FONT> <BR><FONT
face=sans-serif size=2>./src/gdcmElementSet.cxx:
$Revision: 1.26 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmException.cxx:
$Revision: 1.22 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmFile.cxx: $Revision: 1.152
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmGlobal.cxx:
$Revision: 1.6 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmHeader.cxx: $Revision: 1.198 $</FONT>
<BR><FONT face=sans-serif size=2>./src/gdcmHeaderHelper.cxx:
$Revision: 1.43 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmJPEGFragment.cxx: $Revision: 1.1
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmJPEGFragmentsInfo.cxx:
$Revision: 1.4 $</FONT> <BR><FONT
face=sans-serif size=2>./src/gdcmJpeg.cxx:
$Revision: 1.28 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmJpeg12.cxx: $Revision: 1.26 $</FONT>
<BR><FONT face=sans-serif size=2>./src/gdcmJpeg16.cxx:
$Revision: 1.5 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmJpeg2000.cxx:
$Revision: 1.13 $</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmJpeg8.cxx:
$Revision: 1.11 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmPixelConvert.cxx: $Revision: 1.25
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmRLEFrame.cxx:
$Revision: 1.1 $</FONT> <BR><FONT
face=sans-serif size=2>./src/gdcmRLEFramesInfo.cxx:
$Revision: 1.3 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmSQItem.cxx: $Revision: 1.35 $</FONT>
<BR><FONT face=sans-serif size=2>./src/gdcmSeqEntry.cxx:
$Revision: 1.34 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmTS.cxx: $Revision: 1.28
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmUtil.cxx:
$Revision: 1.60 $</FONT> <BR><FONT face=sans-serif
size=2>./src/gdcmVR.cxx: $Revision: 1.22
$</FONT> <BR><FONT face=sans-serif size=2>./src/gdcmValEntry.cxx:
$Revision: 1.34 $</FONT>
<P>
<HR>
<P></P>_______________________________________________<BR>Dcmlib mailing
list<BR>Dcmlib@creatis.insa-lyon.fr<BR>http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib<BR></BLOCKQUOTE></BODY></HTML>