IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Création de fichiers bizarres par le moteur d'exécution


Sujet :

C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Création de fichiers bizarres par le moteur d'exécution
    Hello,

    J'ai une usine à gaz, compilée avec Visual C++, qui me crache parfois des fichiers ayant le patron de nommage suivant :

    class_namespace_nomDeClasse

    Ce qui figure en italique est remplacé selon la classe concernée.

    Pas d'extension de nom de fichiers.
    Ce sont de minuscules fichiers texte qui comportent 5 lignes avec chacune une valeur entière ne dépassant pas 15. La plupart du temps, elle vaut 0.

    Sauriez-vous ce que pourraient être ces fichiers ?

    Je ne sais pas trop quelle requête faire dans Google...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    Hello,
    Quelle version de visual ?
    A quel moment il créé ces fichiers ? à la compil ? au link ? à l'execution ?
    A quel endroit il les créé ? dans un répertoire de build ?

    [EDIT]
    ok j'avais pas lu "moteur d'execution", donc j'imagine qu'il créé ça lors de l'exécution dans le répertoire où ton prog est éxécuté.
    Tu peux poster la ligne de commande complète (avec les options de compil etc...)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par GeantVert13 Voir le message
    J'imagine qu'il créé ça lors de l'exécution dans le répertoire où ton prog est exécuté.
    Exact.

    Citation Envoyé par GeantVert13 Voir le message
    Tu peux poster la ligne de commande complète (avec les options de compil etc...)
    Pour la compilation (j'ai viré ce qui n'avait pas d'intérêt - définition de variables de compilation propriétaires avec /D, par exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    /Zi
    /nologo
    /W4
    /WX-
    /Ox
    /Ob2
    /Oi
    /Ot
    /Oy
    /GT
    /GL
    /D "BOOST_LIB_DIAGNOSTIC"
    /D "WIN64"
    /D "_WINDOWS"
    /D "_CRT_SECURE_NO_DEPRECATE"
    /D "_SCL_SECURE_NO_WARNINGS"
    /D "_EHA_EXCEPTIONS"
    /D "__USE_CONFIG_INC__"
    /D "NDEBUG"
    /GF
    /Gm-
    /EHa
    /MT
    /GS
    /Gy
    /fp:precise
    /fp:except-
    /Zc:wchar_t
    /Zc:forScope
    /GR
    /Yu"stdafx.h"
    /Fp"<UnRépertoire>\<NomDuProjet>.pch"
    /Fa"<UnRépertoire>\"
    /Fo"<UnRépertoire>\"
    /Fd"<UnRépertoire>\"
    /Gd
    /errorReport:queue
    Pour l'édition de liens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /OUT:"<Chemin>\<NomDuProjet>.exe"
    /NOLOGO
    /LIBPATH:"." "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" <Différentes Libs de la Solution>
    /NODEFAULTLIB:"libcmt.lib"
    /NODEFAULTLIB:"nafxcw.lib"
    /MANIFEST
    /ManifestFile:"<UnChemin>\<NomDuProjet>.exe.intermediate.manifest"
    /ALLOWISOLATION
    /MANIFESTUAC:"level='asInvoker' uiAccess='false'"
    /DEBUG
    /PDB:"<UnChemin>\<NomDuProjet>d_x64.pdb"
    /MAPINFO:EXPORTS
    /SUBSYSTEM:CONSOLE
    /PGD:"<UnChemin>\<NomDuProjet>\Debug_x64\<NomDuProjet>.pgd"
    /TLBID:1
    /DYNAMICBASE
    /NXCOMPAT
    /MACHINE:X64
    /ERRORREPORT:QUEUE

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    ce ne serait pas juste des fichiers créés pour le debug ?
    ça fait pareil quand tu compiles en release ?

    En debug est ce que tu arrives à tracer à quel moment ces fichiers sont créés ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par GeantVert13 Voir le message
    ce ne serait pas juste des fichiers créés pour le debug ?
    ça fait pareil quand tu compiles en release ?
    En fait, je n'avais pas fait gaffe : j'avais donné les options de compilation pour la version debug, alors que le problème se produit en release (mais peut-être simplement parce que les conditions en se retrouvent qu'en exploitation).
    J'ai modifié mon précédent message pour mettre les options de compilation correspondant à la version release.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    J'ai pas trop d'idées...
    je rechercherai peut etre la chaine "class_" dans tout le projet, le pattern que tu as donné vient peut être d'une macro genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define filename(namespace,class) class_##namespace_##class
    (suis pas trop sûr de la syntaxe)
    et qui est ensuite utilisé pour créer ces fichiers. à priori, y a rien de magique, c'est ton prog (ou une des libs qu'il utilise (de boost peut être ?)) qui créé ces fichiers.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Rien trouvé de tel.

    Peut-être que d'autres personnes seront inspirées.

    Merci pour ta participation !

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    Désolé de ne pas pouvoir t'aider plus... En tout cas ça m'intrigue, je suis curieux de connaître le fin mot de l'histoire

  9. #9
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Tu peux utiliser procmon pour vérifier que c’est bien ton processus qui crée les fichiers en question, et ensuite, à grand coup de debug, essayer d’isoler le bout de code qui les génère (l’idée générale est de « stepper » large, histoire de voir à quel moment se crée le fichier, et ensuite, à chaque fois, d’explorer la branche qui est responsable de la création sur une nouvelle itération).

    C’est long, fastidieux, mais si tu en es là c’est une solution.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    peut être une dernière petite idée :
    est ce quelque part dans ton code tu utilises une lib boost genre introspection, mirror ou reflection ou une autre lib d'introspection ? Dans ce cas c'est peut-être des appels à cette lib qui seraient à l'origine de ces fichiers ?

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    J'ai trouvé !

    J'étais parti sur l'idée que c'étaient des sortes de dump, mais pas du tout. Quelqu'un a écrit dans le projet du code qui crée ces fichiers. Plus personne ne sait pourquoi...

    J'ai retrouvé ça en recherchant les ofstream.

    Merci de m'avoir soumis vos idées !

  12. #12
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Salut !

    C'est trop tard mais pour chercher l'origine, j'aurais créé un des fichiers à l'avance en mettant des restrictions de droits pour que l'exécutable ne puisse l'écrire, pour voir si ça ne lève pas une exception facile à pécho en débuggant.
    Find me on github

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Pas idiot.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création de fichier dbf par interface window form
    Par AntaresJon dans le forum VB.NET
    Réponses: 3
    Dernier message: 30/04/2010, 09h12
  2. Création de fichier par un pathname
    Par chaminette dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 04/07/2007, 17h59
  3. Réponses: 5
    Dernier message: 18/04/2007, 11h22
  4. [VBA] Création fichier Word par Access via VBA
    Par MadSquirrel dans le forum VBA Word
    Réponses: 2
    Dernier message: 24/09/2006, 15h32
  5. Création de fichier par SP
    Par MuadDib_CH dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/07/2005, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo