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 :

Exécution programme C sur Windows server 2008 - ntdll.dll ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut Exécution programme C sur Windows server 2008 - ntdll.dll ?
    J'ai codé un petit programme sous C:B depuis un poste XP PRO SP3, qui permet de vider des répertoires de logs en fonctions de la date des fichiers.
    Ce programme fonctionne correctement sur un poste XP mais plante systématiquement si je l'exécute sur un windows server 2008 (<=> windows 7)
    => le programme se lance puis est interrompu, s'affiche une fenêtre avec ce message :

    Problem signature:
    Problem Event Name: APPCRASH
    Application Name: GestionFichier.exe
    Application Version: 0.0.0.0
    Application Timestamp: 4d9c93b6
    Fault Module Name: ntdll.dll
    Fault Module Version: 6.0.6002.18327
    Fault Module Timestamp: 4cb73436
    Exception Code: c0000005
    Exception Offset: 00067445
    OS Version: 6.0.6002.2.2.0.272.7
    Locale ID: 1036
    Additional Information 1: 3cd6
    Additional Information 2: 1bf0753a414b1861dae36ba7052fbf5d
    Additional Information 3: 45fa
    Additional Information 4: 3e75e41d9a132c61775b2a51b198c572

    Read our privacy statement:
    http://go.microsoft.com/fwlink/?link...3&clcid=0x0409
    Comme j'ai pu lire ailleurs, est-ce parce que j'ai utilisé des fonctions qui ne sont plus compatibles avec l'OS?

    Je vous mets mes en-têtes ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
    #include <stdlib.h>
    #include <Windows.h>
    #include <string.h>
    #include <dirent.h>
    #include <time.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <locale.h>
    #include <unistd.h>
    Fonctions API WIN32 utilisée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GetFileAttributesEx
    GetLocalTime
    Fonctions "exotiques" utilisées (POSIX ?) :
    En complément j'ai compilé le programme sur la machine cible avec succès (pas d'erreur ni warning) et j'observe le même résultat : au lancement, le programme est bloqué et je vois apparaître le même message cité plus haut

    Toute aide sera la bienvenue, merci d'avance.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Quels sont les répertoires que tu essaye de vider ? N'est-ce pas un problème de droit sur ces répertoires ?




    PS : Pour info, Windows Server 2008 n'est pas "l'équivalent" de W7, mais de Vista. "L’équivalent" de W7 c'est Windows Server 2008 R2

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut
    Les répertoires en question sans dans c:\backup\logs et c:\backup\db
    En regardant les droits, je les vois en "read only" et je ne peux pas les changer.
    Mais en éditant les propriétés avancées je vois que le compte SYSYEM a "full control" sur ces répertoires.
    Le fait de lancer l'executable en tant qu'administrateur donne le même résultat d'ailleurs...
    Je commence à desespérer

    PS: Je m'embrouille avec la version de l'OS, dans les propriétés je vois: windows server standard (copyright 2007 ) sp2

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Question OS :
    OS Version: 6.0.6002.2.2.0.272.7
    6.0 indique Vista ou Windows Server 2008
    le 2 du 6002 indique le Service Pack 2

    Si tu avais W7/WS2008 R2 tu aurais 6.1.7600 ou 6.1.7601 avec le SP1

    Concernant les droits, normalement le compte SYSTEM à le contrôle total sur l'ensemble des dossiers et fichiers du disque. Ce qui compte ces les droit de l'utilisateur ou du groupe correspondant à la session dans laquelle tu exécute ton logiciel.

    Le fait de lancer l'executable en tant qu'administrateur donne le même résultat d'ailleurs...
    A partir de Vista, un compte administrateur a, par défaut, les mêmes droits qu'un compte utilisateur. Pour avoir les droits administrateur, être avec un compte administrateur ne suffit pas. Il faut bien faire en plus, un click droit sur l’exécutable et choisir "Executer en tant qu'administrateur"

    Tu dis avoir recompiler sur la cible, tu as certainement donc dû installer l'environnement de développement. Si tu fais une exécution pas à pas dans cet environnement, tu peux sur qu'elle instruction exactement il plante.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut
    Merci pour ces réponses dignes d'enseignement!
    Effectivement j'ai eu l'idée de debugger sur la machine cible et arrivé à un moment j'ai un SIGSERV.
    En consultant mes vieux bouquins, j'ai vu que c'était lié à un problème de mémoire.
    J'ai pas mal d'allocations dynamiques de pointeurs (char *) et je suppose que ça pourrait venir de là.
    Là où je suis un peu désorienté c'est que le programme en question tourne nickel sur mon poste XP PRO...
    Pourquoi il y aurait un tel écart?

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Peut-être un problème d'architecture 32 ou 64bits

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

Discussions similaires

  1. Installation de service sur windows server 2008
    Par scorplex dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 03/04/2009, 17h58
  2. Confguration IIS sur Windows Server 2008 et SQL 2005
    Par jpigrec dans le forum Serveurs (Apache, IIS,...)
    Réponses: 5
    Dernier message: 27/01/2009, 10h57
  3. Application serveur DCOM sur Windows Server 2008
    Par maaartchiano dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 08/05/2008, 13h59
  4. Dysfonctionnements d'Apache sur Windows Server 2008
    Par akrobat dans le forum Apache
    Réponses: 3
    Dernier message: 03/04/2008, 16h44

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