2010-05-08 5 views
2

J'ai un service Windows .NET qui semble se briser en raison de C00000005 (violation d'accès - selon Dr Watson). Lorsque j'attache le débogueur VS - que je le construise avec ou sans symboles - le débogueur VS s'arrête juste quand le service se bloque, au lieu de s'arrêter pour me donner une chance de faire n'importe quelle enquête.Comment puis-je déboguer un service Windows qui se bloque?

  1. Est-ce normal, ou est-ce que je fais quelque chose de mal?
  2. Est-ce que l'aide WinDbg me laisser faire quelque chose de plus en temps réel (évidemment, WinDbg me permet de faire une analyse de vidage sur incident)?

Merci!

Répondre

0

Vous devez aller à la fenêtre d'exceptions (Debug -> Exceptions) et sélectionnez la case à cocher pour cette exception Jeté dans les exceptions Win32. De plus, faites attention que vous le débogage du code natif (voir ci-joint zone de liste déroulante dans la joindre à traiter fenêtre

+0

@Christopher. Avez ma réponse vous aider – Ikaso

+0

Désolé, aucun Le problème avéré être une DLL COM?. qui a été de se décharger avant de rejoindre tous les fils qu'elle avait donné naissance. Lorsque l'un des fils de sommeil se sont réveillés, il a essayé d'exécuter du code qui n'a pas été en mémoire plus, qui a finalement causé gestionnaire d'exceptions récursive appelle à déborder la pile. Conclusion: n'utilisez pas OmniORB dans une DLL COM à moins de savoir ce que vous faites. – Chris

Questions connexes