cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
2 sept. 2004 à 02:07
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
5 sept. 2004 à 20:58
Bonsoir,
J'ai un pb avec le param StreamDirectoryRva de ce lien msdn : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/minidump_header_str.asp En fait, je recupere convenablement les données de l'entete, mais pour recuperer les infos de chak stream, j'ai besoin de ce parametre. Or, je n'obtiens que des resultats erronée, et je me demandais si le fait que ce soit une RVA, je doive m'y prendre autrement pour traiter les données que cette adresse pointe, et pas utiliser cette adresse comme un pointeur.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 2 sept. 2004 à 09:35
s'il s'agit de "Relative Virtual Address", il faut ajouter ce RVA à l'adresse où est effectivement charger le fichier en mémoire pour avoir le vrai pointeur. (en tout cas pour les executables c'est comme ça). en gros il s'agit d'un offset à partir du début du flux.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 5 sept. 2004 à 20:53
si tu regarde bien, ce n'est pas un pointeur simple sur les données qui est demandé mais un pointeur sur un pointeur vers le début des données.
si j'ai bien compris, avec le type voulu :
PMINIDUMP_DIRECTORY pmd;
PVOID pData; // vas récupérer le début des données
ULOND ulSize; // vas récupérer la taille
MiniDumpReadDumpStream(
lpszcontenu,
StreamNumber,
&pmd, // pointeur de pointeur
&pData, // -> pointeur de pointeur
&ulSize
);
Le code est logikment bon, mais m'affiche un resultat totalement faux, enfin ct pour te demander si le code etait bon, j'ai ptet fait une connerie...J'ai oci essayé la projection en memoire du fichier, mais pareil, le resultat est faux...
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 5 sept. 2004 à 16:03
Uè c vrai, merci pour le INVALID_HANDLE_VALUE.
Un truc bizarre avec MiniDumpReadDumpStream, c kil fo préciser le type du stream dont on desire des infos, or je ne connais pas tous les types de stream présents ds le minidump, dc j'ai fouillé et jme suis apercu ke je pouvais trouver plus facilement ces infos a partir de l'header.
Le truc ke je pourrais faire, faire une boucle et passer tous les types de stream a la fonction, regarder la valeur de retour de MiniDumpReadDumpStream, et sil n'existe pas, je passe au type suivant, mais ca me semble con de faire appel a une fonction pour rien.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 5 sept. 2004 à 16:35
Et je viens de remarquer kil faut aussi un pointeur vers le debut du stream...Cette fonction en gros ne sert a rien ! Puis ce qu'a partir de l'adresse de debut du stream, tt le monde est capable de recup des infos sur celui ci grace aux differentes structures et enum. Enfin bon...