2012-09-03 3 views
1

J'essaie de déboguer une application C# en utilisant SOSEX dans WinDbg pour environnement 32 bits dans .NET Framework 4.0. J'utilise sosex.dll pour 32 bits v4.0.Point d'arrêt ne fonctionne pas pour SOSEX en utilisant! Mbp

Voici les étapes:

  1. sxe ld:mscorlib
  2. sxe ld:clrjit
  3. loadChemin sosex.dll
  4. !mbp application.cs 34 (cela fixe à la ligne point d'arrêt 34)

Il fonctionne bien ici.

Toutefois, lorsque je démarre WinDbg et que je me connecte au processus C# application.exe et que j'entreprends les étapes nécessaires, le point d'arrêt ne fonctionne pas.

Une chose que j'ai observée est que la première fois que j'ai exécuté la commande lm dans WinDbg, la sortie n'affiche que application.exe.

Mais la prochaine fois, la commande lm a montré tous les modules déjà chargés (clrjit, mscorlib, etc.)

Est-ce pourquoi le point d'arrêt ne fonctionne pas?

+0

S'il y a des détails de votre [question précédente sur ce sujet] (http://stackoverflow.com/questions/12244012/breakpoint-doesnt-work-in-windbg-using-sosex) que vous voulez ajouter à cette question, s'il vous plaît [modifier] cette question et les ajouter ici. – shambulator

+0

Avez-vous vérifié cette [post] (http://stackoverflow.com/questions/11768921/breakpoint-set-by-sosex-mbp-or-sosex-mbm-not-working)? –

Répondre

0

Avec SOSEX, les étapes 1 et 2 ci-dessus sont inutiles. Si vous lancez une application à partir du débogueur, vous pouvez utiliser !mbm et !mbp à partir du point d'arrêt initial.

En ce qui concerne votre problème, ce qui est situé à application.cs, ligne 34? Est-ce le point d'entrée (Main)? Il semble que vous essayez de rompre après que le code a déjà été exécuté. Veuillez attacher tout le débogueur spew de votre tentative de rupture. Cela aidera à identifier la cause du problème.

+0

C'est une méthode simple appelée print() dans main() qui affiche "bonjour" à la console. Le point d'arrêt est défini à cette méthode. Avant cette méthode il y a Console.ReadKey() de sorte que lorsque cette touche est atteinte dans l'application, la méthode print() est appelée. – user1502952

+0

J'ai testé cela avec "SOS.dll". Breakpoint fonctionne bien. – user1502952

+0

Pouvez-vous dire si la méthode Print a été insérée? N'hésitez pas à me contacter hors ligne. Si sosex est cassé, je voudrais le réparer. –

Questions connexes