2010-11-02 46 views
1

Disons que j'ai une application .Net gérée à 100%.Puis-je utiliser powershell pour inspecter un processus .Net en cours?

Je peux y attacher via un débogueur de studio visuel et être capable de faire des choses comme saisir des références à un ServiceLocator (si c'est statique) et ainsi de suite. J'aimerais pouvoir le faire à Powershell.

Il semble que cela devrait être possible, mais je ne sais pas par où commencer. Des idées?

Répondre

2

Jetez un oeil à PowerDbg. C'est un bon début imho.

Description succincte copié à partir CodePlex:

PowerDbg est une bibliothèque qui PowerShell vous permet de créer facilement scripts PowerShell pour automatiser une session de débogage WinDbg/CDB. Vous pouvez utiliser PowerDbg pour le mode noyau ou le mode utilisateur, le débogage Post-Mortem ou le débogage en direct et pour le code managé natif ou .

PowerShell a plusieurs avantages par rapport au le langage de script WinDbg. Quelques d'entre eux sont:

  • plus facile de créer des scripts
  • Leverage le .NET Framework
  • Debugging et fonctionnalités de traçage
  • réutilisation de code grâce à des fonctions et cmdlets
  • plus facile d'entretien
  • plus facile pour construire de grands scripts
  • Plus facile à formater et afficher les informations importantes

Que vous soyez un vieux frustré avec les scripts WinDbg, ou vous êtes avoir votre freak-out « premier vidage de la mémoire » , PowerDbg est pour vous. Et espérons pour tout le monde au milieu too.too.

+0

Gah! Qui diable utilise TFS avec codeplex? Ou TFS pour une raison autre que «être forcé de» d'ailleurs? De toute façon, merci beaucoup, cela semble intéressant. –

+0

Hmm ... pas tout à fait ce que je cherchais. Besoin d'installer des outils de débogage, avoir un pdb, etc. semble beaucoup. Quelle est exactement la limitation qui m'empêche d'être simplement en mesure d'attacher powershell à un processus clr en cours d'exécution et faire des appels contre tout objet en elle? –

+0

La question est - comment joindriez-vous l'application C# au processus? Ensuite, nous pourrions trouver un moyen de le faire à partir de PowerShell. – stej