Вопрос

Я работаю в VS 2008, и у меня есть три проекта в одном решении.Я выполняю отладку, подключаясь к процессу .net, вызываемому сторонним приложением (SalesLogix, приложение CRM).

Как только он подключается к процессу, и я пытаюсь установить точку останова в одном из проектов, он не устанавливает точку останова в этом файле.Фактически он переключает текущую вкладку на другой файл в другом проекте и устанавливает точку останова в этом документе.Если файл не открыт, он даже заходит так далеко, что открывает его для меня.Я не могу этого объяснить.Я понятия не имею.Кто-нибудь видел такое странное поведение?Я бы не поверил в это, если бы не видел сам.

Немного больше информации:если я установлю точку останова перед подключением, она покажет "красную точку" и сообщит, что символов нет loaded...no проблема...Я ожидаю этого.Когда я подключаю и вызываю свой .net-код из SalesLogix и переключаюсь обратно на VS, моя точка останова полностью исчезает (даже нет предупреждения о том, что исходный код не соответствует файлу отладки).Когда я пытаюсь вручную загрузить файл отладки, я получаю сообщение о том, что файл символов не соответствует модулю..pdb и .dll имеют одинаковую временную метку, так что я в тупике.

У кого-нибудь есть какие-нибудь идеи?

Спасибо,

Джефф

Это было полезно?

Решение

Я видел эту функциональность в более старых версиях VS.Net (кажется, 2003).Возможно, он все еще существует в текущих версиях, но я с ним не сталкивался.Похоже, что файлы с одинаковым именем даже в разных каталогах сбивают с толку VS.Net, и это приводит к установке точки останова в файле с таким же именем.Это может произойти только в том случае, если оба класса в файле также имеют одинаковое имя.Думаю, это уже слишком для пространств имен.

Вы также можете захотеть проверить конфигурацию сборки, чтобы убедиться, что все проекты действительно создаются в режиме отладки.Я знаю, что пару раз меня ловили на том, что конфигурация решения каким-то образом менялась, и некоторые проекты не компилировались в режиме отладки.

Другие советы

Кибби, ты был прав!Это были два файла с одинаковыми именами в разных папках.Я устанавливал точку останова в правильном файле в строке 58 - это была установка точки останова в другом файле в строке 58.Я, наконец, смог установить точку останова, используя опцию меню "Debug-> New Breakpoint-> Break at Function Name" и введя имя моей функции.Тогда все прекратилось именно так, как и должно было произойти.

Я согласен - вот и все для пространств имен, не так ли?Чертова штука стоила мне пары часов.О, well...at по крайней мере, это решено, и я знаю почему.

Спасибо за ответ и Мэтту за его ответ тоже!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top