Question

Je travaille dans VS 2008 et j'ai trois projets dans une seule solution.Je débogue en m'attachant à un processus .net invoqué par une application tierce (SalesLogix, une application CRM).

Une fois qu'il est attaché au processus et que j'essaie de définir un point d'arrêt dans l'un des projets, il ne définit pas de point d'arrêt dans ce fichier.Il bascule en fait l'onglet actuel vers un autre fichier d'un autre projet et définit un point d'arrêt dans ce document.Si le fichier n'est pas ouvert, il va même jusqu'à l'ouvrir pour moi.Je ne peux pas expliquer cela.Je n'en ai aucune idée.Quelqu'un a vu un comportement aussi étrange ?Je ne le croirais pas si je ne le voyais pas moi-même.

Un peu plus d'infos :si je définis un point d'arrêt avant de l'attacher, il affiche le "point rouge" et indique qu'aucun symbole n'est chargé... pas de problème... je m'attends à cela.Lorsque j'attache et appelle mon code .net depuis SalesLogix et que je reviens à VS, mon point d'arrêt disparaît complètement (pas même un avertissement indiquant que la source ne correspond pas au fichier de débogage).Lorsque j'essaie de charger manuellement le fichier de débogage, je reçois un message indiquant que le fichier de symboles ne correspond pas au module.Le .pdb et le .dll sont horodatés de la même manière, donc je suis perplexe.

Quelqu'un a des idées ?

Merci,

Jeff

Était-ce utile?

La solution

J'ai vu cette fonctionnalité dans les anciennes versions de VS.Net (2003 je pense).Il existe peut-être encore dans les versions actuelles, mais je ne l'ai pas rencontré.Il semble que les fichiers portant le même nom, même dans des répertoires différents, confondent VS.Net, et cela finit par définir un point d'arrêt dans un fichier portant le même nom.Cela ne peut se produire que si les classes du fichier portent également le même nom.Voilà pour les espaces de noms, je suppose.

Vous souhaiterez peut-être également vérifier votre configuration de build pour vous assurer que tous les projets sont effectivement construits en mode débogage.Je sais que j'ai été surpris à plusieurs reprises lorsque la configuration a été modifiée d'une manière ou d'une autre pour la solution, et que certains projets n'étaient pas compilés en mode débogage.

Autres conseils

Kibbee, tu avais raison !Il s'agissait de deux fichiers portant le même nom dans des dossiers différents.Je définissais le point d'arrêt dans le bon fichier à la ligne 58 - je mettais le point d'arrêt sur l'autre fichier à la ligne 58.J'ai finalement pu définir un point d'arrêt en utilisant l'option de menu "Debug-->New Breakpoint-->Break at Function Name" et en entrant le nom de ma fonction.Cela s’est arrêté exactement comme il aurait dû le faire à ce moment-là.

Je suis d'accord - tant pis pour les espaces de noms, n'est-ce pas ?Ce putain de truc m'a coûté quelques heures.Oh, eh bien... au moins c'est résolu et je sais pourquoi.

Merci pour la réponse et merci à Matt pour sa réponse également !

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top