2010-06-18 9 views
0

Consultez le code suivant (écrit avec Visual Studio 2010 et .NET 4.0)Visual Studio 2010 debug minidump

using System; 

namespace DumpTester 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
    int test = new Random().Next(); 


    Console.WriteLine(test + new Random().Next()); 

    Test(); 

    } 

    private static void Test() 
    { 
    throw new Exception(); 
    } 
} 
} 

Lors de l'exécution en dehors de Visual Studio vous obtenez cette belle fenêtre de Microsoft Windows 7 qu'il recherche une solution. Évidemment, puisque c'est mon application, il n'y en a pas. À ce stade, je crée un fichier de vidage complet de mon application avec par exemple Process Explorer. Puis, j'ouvre ce fichier dmp à partir de son emplacement et j'essaie de déboguer. Mais quoi que j'essaie, il ne peut pas trouver l'emplacement des symboles source. J'ai essayé de mettre le pdb à côté de la décharge mais il ne le trouve pas.

http://i50.tinypic.com/sgmhz4.png http://i50.tinypic.com/sgmhz4.png

L'application est construite avec des paramètres 32bit et je suis en train de déboguer sur une machine 32 bits. Lorsque je définis mes paramètres sur 64 bits, cela fonctionne parfaitement.

Mais le problème est que l'application que j'utilise doit être 32 bits.

Alors pouvez-vous déboguer des vidages 32 bits sur Windows 64 bits?

Qu'est-ce que je fais mal?

Répondre

1

Vous pouvez déboguer des vidages 32 bits sur une machine 64 bits sans problème. Je suggère de donner à cet excellent blog un article de John Robbins sur les fichiers PDB, here