2010-02-01 5 views
9

J'ai quelques questions concernant les vidages de mémoire. J'ai gdb sur Windows, en utilisant Cygwin.Analyse de vidage de base à l'aide de gdb

  1. Quel est l'emplacement du fichier de vidage de base? Est-ce un fichier.exe.stackdump? (C'est le seul fichier généré après un crash) J'ai lu sur d'autres forums que le core dump est nommé "core". Mais je ne vois aucun fichier avec le nom "core".

  2. Quelle est la commande pour ouvrir et comprendre le fichier de vidage de base?

Répondre

12
  1. Vous devez configurer Cygwin pour produire des coredumps en incluant

    error_start=x:\path\to\dumper.exe

    dans votre variable d'environnement CYGWIN (voir here dans la section "dumper" pour plus d'informations). Si vous ne l'avez pas fait, vous n'obtiendrez qu'une pile de pile, ce qui peut également vous aider à diagnostiquer le problème.

  2. Démarrer gdb comme suit pour l'attacher à un fichier de vidage de base:

    gdb myexecutable --core=mycorefile

    Vous pouvez maintenant utiliser les commandes gdb habituelle pour imprimer un stacktrace, examiner les valeurs des variables, et ainsi de suite.

+0

Comment modifier la variable d'environnement Cygwin? – avd

+0

voir http://en.wikipedia.org/wiki/Environment_variable. Si vous utilisez Cygwin, je vous recommande fortement de lire quelques notions de base sur Unix - vous en aurez besoin. –

+0

En fait, je connais le concept de variable d'environnement. J'ai compris ce que vous dites, en définissant la variable d'environnement nommée "error_start". Je demande où devrais-je définir la nouvelle variable d'environnement? au même endroit (mon ordinateur-> propriétés -> ...)? – avd

2
  1. Oui, Cygwin crée a.exe.stackdump fichiers par défaut. Vous devez également le configurer pour créer core s (la réponse de Martin couvre cela).
  2. Un tutoriel simple sur le débogage de vidage de base se trouve here
Questions connexes