Проблема отладки Visual Studio 2008 - PullRequest
4 голосов
/ 28 августа 2008

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

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

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

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

Thx,

Джеф

Ответы [ 2 ]

4 голосов
/ 28 августа 2008

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

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

0 голосов
/ 28 августа 2008

Кибби, ты был прав! Это были два файла с одинаковыми именами в разных папках. Я устанавливал точку останова в правильном файле в строке 58 - она ​​помещала точку останова в другой файл в строке 58. Я наконец смог установить точку останова, используя «Отладка -> Новая точка останова -> Разрыв в функции». Название меню и ввод имени моей функции. Это прекратилось точно так, как должно было тогда.

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

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

...