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

Visual C++ Discussion :

[V.C++6] création .sym


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut [V.C++6] création .sym
    Bonjour à tous,
    je debug pour ma boite un driver.
    J'ai pas mal d'écran bleu lors de l'utilsiation.
    Je voudrais utiliser windbg pour savoir ce qui me les provoquent.

    d'apres mon boss il y a possiblité de savoir ce qui genere ces ecran bleu grace au fichier .map, . sym et .pbd.

    Mon problème c'est que lors de ma compilation je crée bien un fichier .pdb.

    Mais aucune trace d'un quelquonque .sym ou .map.

    Je voudrais donc savoir comment les créer, si c'est visual qui s'en charge ou bien un logiciel independant.


    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    d'apres mon boss il y a possiblité de savoir ce qui genere ces ecran bleu grace au fichier .map, . sym et .pbd.
    Aucun des trois...

    Pour savoir ce qui génère un écran bleu, il faut demander au système de générer un fichier de dump au BugCheck (BugCheck étant la dernière fonction à être exécutée lors d'une erreur critique).

    Déjà l'écran bleu peut être d'une certaine aide parce qu'il donne quelque fois des détails sur l'erreur.

    Pour générer le dump (en gros, il s'agit d'un vidage mémoire plus ou moins gros), il faut aller dans (ici en anglais) :

    Start > control panel > System > Advanced > Startup and recovery > settings > Write Debugging Information.

    Trois options pour le memory sump :

    - Small
    - Kernel
    - Complete

    Pour un driver, le mieux est de commencer par un Kernel Dump. (le "complete dump" est parfois très très gros...)

    Ensuite il faut regarder où va le dump, généralement : %SystemRoot%\Minidump

    Le dump est un fichier avec extension *.dmp.

    Une fois le dump généré (et après avoir redémarré) il suffit de démarrer windbg et de faire une session en ouvrant le fichier dump (File > Open crash Dump). Ici il n'y a "plus qu'à" faire l'analyse du dump (certainement le plus compliqué dans l'histoire).

    Ne pas oublier de charger les symboles du driver dans Windbg, ça aidera beaucoup.

    Commencer la session en analysant le bugcheck via les commandes :

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dd NT!KiBugCheckData L5
    Ne pas oublier de faire un :

    Pour avoir plus d'infos.

    Une autre façon de pousser l'analyse plus loin serait de combiner l'analyse du dump avec une analyse live en faisant un remote debug kernel via Windbg (File > Kernel Debug > COM / 1394 / USB ; mais pas "local", le Kernel debug en local est fait sur un snapshot du kernel, ça n'est pas un "vrai" kernel debug...)

    Bon courage.

  3. #3
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Bonjour et Merci Neista pour ton aide.
    Pour ce qui est de tes explications je les ai deja utilisées.

    Mon soucis c'est que d'apres mon Boss, il me serai possible à partir du symbol loader de chez softIce, de pouvoir cibler ma ligne de code me generant cet ecran bleu.

    Mais le problème c'est que SI necessite un fichier .sym
    or pour pouvoir créer ce .sym il me faudra d'abord créer un .map avec visual c++6
    et c'est la qu'est mon problème je ne sais pas comment le créer.
    Après c'est le soft fourni dans le DDK mapsym.exe qui se chargera de generer le .sym a partir du .map.

    En tout cas merci pour ton aide neista

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414

  5. #5
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    Merci nico-pyright pour tes liens.

    Ce qui m'etonne le plus c'est que je ne dispose pas de ces onglets pour mon projet, aucun moyen de generer des .map ou .sym.

    Les seuls fichier generé sont le .pdb et les .obj et .sbr

    il est peu etre possible de generer un .sym ou .map à partir d'un .pdb ???

    Si oui quelqu'un pourrait m'aider svp.

    J'ai aussi vu sur MSDN qu'il etait possible de generer un .map directement par le code grace à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    C++
     
    property bool GenerateMapFile {
        bool get ();
        void set ([InAttribute] bool Map);
    }
    Mais je ne sait pas du tout ou la copier ....

    Mon projet consiste au développement d'un driver.
    Si c'a peu vous aider à m'aider lol.

    En totu cas merci d'avance pour votre aide

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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