web-dev-qa-db-fra.com

Les points d'arrêt ne sont pas touchés dans Xamarin Studio

Mes points d'arrêt ne sont pas touchés dans Xamarin Studio. Je ne sais pas si cela a à voir avec mon code, ou pas, mais j'ai l'impression que ce n'est pas le cas, car j'ai maintes et maintes fois essayé de placer des points d'arrêt dans tout mon projet (là où je sais qu'ils devraient absolument être hit, et à certains endroits, le code fonctionne parfaitement et n’a aucun rapport avec la fonctionnalité que je teste actuellement) et aucun d’eux n’est reconnu lorsque je débogue. Je n'ai pas désactivé les points d'arrêt et je ne les ai pas ajoutés au mauvais endroit. Les points d'arrêt devraient fonctionner normalement, et ils ne le sont pas. J'ajouterai également que je ne suis pas autorisé à suspendre mon application pendant le processus de débogage. Je suppose que vous pourriez dire que le débogueur de mon studio Xamarin ne fonctionne pas et je ne sais pas pourquoi. Je pense avoir déterminé que cela n'avait aucun rapport avec le code, mais je ne peux pas en être sûr pour le moment. S'il vous plaît aider. Je vous remercie. 

14

C’est la question la plus populaire concernant: "les points de rupture ne sont pas touchés dans xamarin" dans google. Après une journée d’essais et d’erreurs, je vais poster ici une solution à ce problème pour les versions de xamarin> 4.0.0.xxx. Oui, malheureusement c'est simple. 

SOLUTION (Cette solution est conçue pour une application Android dans Visual Studio, mais devrait également fonctionner dans xamarin Studio)

Supprimez tous les symboles du chemin d'accès à votre dossier "Debug" (généralement: [chemin d'accès à votre fichier .sln]\[nom de votre solution]\bin\Debug):

Donc si vous avez par exemple:

G:\My Files\Programming\C# (+ JS)\Test1\Examples\LINQ to Objects\AndroidDemo\AndroidDemo\bin\Debug

Changez le en:

G:\My Files\Programming\CSharp\Test1\Examples\LINQ to Objects\AndroidDemo\AndroidDemo\bin\Debug

Pour moi, les symboles "(" et ")" étaient la cause du problème (Qui utilise de tels symboles dans le chemin, n'est-ce pas?)

Pour vérifier que cela fonctionne, ouvrez votre dossier de débogage. Dans Visual Studio, sélectionnez "Nettoyer la solution", "Solution de recompilation", "Déployer".

L'action "Déployer" devrait générer des fichiers * .mdb contenant vos données de débogage. S'ils sont présents, vous devriez maintenant pouvoir vous arrêter aux points d'arrêt.

Maintenant, vous pouvez simplement appuyer sur F5 comme d'habitude chaque fois que vous avez besoin de déboguer quelque chose.

 enter image description here

18
rvnlord

Je ne sais pas si quelqu'un suit toujours ce fil de discussion, mais cette solution de contournement a fonctionné pour moi. Le problème a parfois à voir avec le mono 5.

La solution consiste donc à utiliser l'ancienne version de mono:

Définissez "Projet> Active Runtime" sur "Mono 4.8.0 (8f6d0f6) (/Library/Frameworks/Mono.framework/Versions/4.8.0)".

pour les utilisateurs de Mac, modifiez-le dans "Préférences" -> "Runtimes .NET"

Ensuite, reconstruisez le projet d'application Android.

9
Haggai

La suppression des dossiers BIN et de tout fichier * .SUO est un correctif favori pour ce problème.

Peut aussi essayer de supprimer tout * .csproj.user

Dans le pire des cas, réinitialisez les paramètres VS en lançant (Run) avec "Devenv.exe/ResetSettings"

3
Thomas Hagström
  1. Assurez-vous que votre configuration de construction est définie sur Debug. 
  2. Assurez-vous que les paramètres de construction de votre projet sont définis pour autoriser l'émission de symboles DEBUG pour votre configuration Debug.
  3. Nettoyez et reconstruisez votre solution/projet.
  4. Fermez et redémarrez Xamarin Studio.
  5. Redémarrez votre ordinateur.

Parfois, les configurations de génération de votre solution peuvent devenir compliquées et il est facile de rater un élément lors de la construction d'une configuration de construction complexe. Assurez-vous que tout est configuré correctement.

1
NovaJoe

Je l'ai rencontré hier avec VS 2013 et le plugin Xamarin. Les points d'arrêt "tout d'un coup" dans un projet PCL n'étaient pas actifs, même si les points d'arrêt d'un projet Android l'étaient toujours. Tout fonctionnait parfaitement depuis des semaines et je n'avais appliqué aucune mise à jour. En regardant le débogage VS | Windows | Dans la vue Modules, je pouvais voir que les symboles n'étaient pas chargés pour l'assemblage PCL, et rien de ce que j'ai essayé ne les obligerait à charger, même s'ils étaient présents dans le dossier contenant les assemblages en cours d'exécution.

Ensuite, je me suis rappelé que la dernière chose que j'avais faite la veille n'était pas liée au code, mais consistait à refactoriser un peu les fichiers csproj afin de prendre en charge une version paramétrée de Jenkins. J'avais placé une définition OutputPath dans le premier PropertyGroup "partagé" et l'avais supprimée de tous les PropertyGroups spécifiques à la configuration/à la plate-forme, par exemple:

<OutputPath>bin\$(Configuration)\</OutputPath>

J'ai supprimé ce OutputPath "commun" et l'ai replacé dans chaque PropertyGroup spécifique (offusquant ma sensibilité DRY, mais attention) et les choses ont recommencé à fonctionner.

Cela ne va probablement pas toucher beaucoup de gens, mais cela m'a fait perdre quelques heures, alors espérons-le, cela épargnera quelqu'un d'autre. La compilation Xamarin exécute probablement certaines de ses spéléologie MSBuild/xbuild avec de fortes attentes. Par conséquent, si vous avez modifié vos fichiers csproj pour un processus de compilation, cela pourrait être un coupable.

1
Mark Larter

J'ai rencontré ce problème dans l'application Xamarin Forms à l'aide de Visual Studio pour Mac. Dans mon cas, c'est dû au débogueur. Visual studio affichait en permanence "Attendre que le débogueur se connecte au simulateur iOS ..." tout en s'exécutant dans un simulateur iOS. J'ai réinitialisé le simulateur ( Matériel => Effacer Tout Contenu et Paramètres ) et nettoyé la solution. Ensuite, je pourrais faire le débogage avec des points d'arrêt. J'espère que ça aide quelqu'un.

0
Dev

Je suis passé de stable à alpha Channel v.3.11.785 (Alpha). tous les points d'arrêt sont maintenant touchés.

0
macio.Jun

J'ajoute cette réponse car c'est le seul qui a fonctionné pour moi, dans Project Properties > Build j'ai coché à tort Optimize Code. . Décocher cette case a résolu le problème.

0
Entretoize