Bonjour,
Je développe un programme sous visual C++ (2005) et j'utilise une dll developpée par un fournisseur (sous visual C++ 6).
Sous windows 2000, mon programme crash systématiquement. Sous windows XP j'arrive à éviter le crash (par chance peut être).
Je suspecte que la dll du fournisseur est entrain de causer des débordements de tampon car l'output du déboggeur et de windbg (ci-dessous) montrent des crash dans les lib microsoft de traitement de streams et de chaînes de caractères. Cependant j'aimerai m'assurer que ces crash ne sont pas dûs à des bug dans la lib (VC6) de microsoft avant d'engager le support du fournisseur.
Est-ce que les piles d'appel ci-dessous ont déjà été rencontrée par d'autres developpeur sur ce forum ?
Sous windbg le crash dump donne:
ChildEBP RetAddr Args to Child
WARNING: Stack unwind information not available. Following frames may be wrong.
00121b60 102162f2 00000030 00121e58 00121bfc MSVCRTD!fcloseall+0x1024
00121e28 10215c6f 00121e58 0012fffa 00121e94 MSVCRTD!fcloseall+0x422
00121e78 10492f29 00121eb0 00121efc 00000000 MSVCRTD!sprintf+0x9f
00121f04 30303030 30303030 30303030 30303030 MSVCP60D!std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char> > >::do_put+0x89
00121f08 30303030 30303030 30303030 30303030 0x30303030
Sous le déboggeur:
> MSVCRTD.DLL!write_char(int ch=48, _iobuf * f=0x00121e58, int * pnumwritten=0x00121bfc) Line 1083 + 0x20 bytes C
MSVCRTD.DLL!_output(_iobuf * stream=0x00121e58, const char * format=0x0012fffa, char * argptr=0x00121e94) Line 393 + 0x15 bytes C
MSVCRTD.DLL!sprintf(char * string=0x00121eb0, const char * format=0x00121efc, ...) Line 104 + 0x11 bytes C
MSVCP60D.DLL!std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char,std::char_traits<char> > _F={...}, std::ios_base & _X={...}, char _Fill='0', double _V= 1.3980432860952889e-076) Line 496 + 0x2e bytes C++
30303030()
D'avance merci
Partager