Подтвердить что ты не робот

Точки останова не попадают в Xamarin Studio

Мои контрольные точки не попадают в Xamarin Studio. Я не уверен, связано ли это с моим кодом или нет, но я чувствую, что это не так, потому что я много раз пытался перехватывать контрольные точки по всему моему проекту (в тех местах, где я знаю, они обязательно должны быть и в местах, где код работает отлично и полностью не связан с функцией, которую я тестирую в настоящий момент), и ни один из них не получает подтверждение при отладке. У меня нет отключенных точек останова, и я не добавляю их в неправильное место. Контрольные точки должны работать нормально, а это не так. Я также добавлю, что мне не разрешено приостанавливать мое приложение во время процесса отладки. Полагаю, вы могли бы сказать, что отладчик в моей Xamarin Studio не работает, и я понятия не имею, почему. Я считаю, что я определил его, не связанный с кодом, но я не могу быть уверен в этом. Пожалуйста помоги. Спасибо.

4b9b3361

Ответ 1

Это самый популярный вопрос: "точки останова не попадают в xamarin" в google, поэтому после целого дня проб и ошибок я опубликую здесь решение этой проблемы для версий xamarin > 4.0.0.xxx, Да, к сожалению, это просто.

РЕШЕНИЕ (Это решение предназначено для приложения для Android в visual studio, но должно работать и в студии xamarin)

Удалите все символы из пути в папку "Отладка" (обычно: [путь к вашему .sln файлу]\[имя вашего решения]\bin\Debug):

Итак, если вы получили, например:

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

Измените его на:

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

Для меня "(" и ")" символы вызывали проблему (кто использует такие символы в пути в любом случае правильно?)

Чтобы убедиться, что это работает, откройте папку отладки, в VIsual Studio Выберите "Чистое решение", "Перекомпилировать решение", "Развернуть".

Действие "Развернуть" должно генерировать файлы *.mdb, которые включают ваши данные отладки. Если они присутствуют, вы должны теперь иметь возможность остановиться на контрольных точках.

Теперь вы можете просто нажать F5, как обычно, когда вам нужно что-то отлаживать.

введите описание изображения здесь

Ответ 2

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

Таким образом, разрешение заключается в использовании более старой версии моно:

Установите "Project > Active Runtime" в "Mono 4.8.0 (8f6d0f6) (/Library/Frameworks/Mono.framework/Versions/4.8.0)".

для пользователей Mac, измените его в "Предпочтения" → ".NET Runtimes"

Затем перестройте проект приложения Android.

Ответ 3

Удаление папок BIN и любого файла *.SUO является излюбленным исправлением этой проблемы.

Можно также попытаться удалить любой *.csproj.user

В худшем случае reset VS Settings, запустив (Запустить) с помощью "Devenv.exe/ResetSettings"

Ответ 4

  • Убедитесь, что ваша конфигурация сборки настроена на Debug.
  • Удостоверьтесь, что ваши настройки сборки проекта настроены так, чтобы позволить использовать символы DEBUG для вашей конфигурации Debug.
  • Очистите и перестройте решение/проект.
  • Закройте и перезапустите Xamarin Studio.
  • Перезагрузите компьютер.

Иногда конфигурации сборки для вашего решения могут усложняться, и легко пропустить что-то при построении сложной конфигурации сборки. Убедитесь, что все правильно установлено.

Ответ 5

Я столкнулся с этим вчера, используя VS 2013 и плагин Xamarin. "Внезапные" точки останова в проекте PCL неактивны, хотя точки останова в проекте Android все еще были. В течение нескольких недель все работало отлично, и я не применял никаких обновлений. Глядя на VS Debug | Windows | Просмотр модулей, я мог видеть, что символы не были загружены для сборки PCL, и ничто из того, что я попробовал, не заставит их загружать, даже если они присутствуют в папке с запущенными сборками.

Затем я вспомнил, что последнее, что я делал в предыдущий день, не было связано с кодом, но было немного рефакторинга файлов csproj для поддержки параметризованной сборки Jenkins. Я поместил определение OutputPath в первую "общую" PropertyGroup и удалил его из всех групп свойств Property/Platform, например:

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

Я удалил этот "общий" OutputPath и вернул его в каждую конкретную PropertyGroup (оскорбив мои сухие чувства, заметьте), и все стало работать снова.

Это, вероятно, не укусит очень много людей, но потратил пару часов, так что, надеюсь, это избавит кого-то другого. Сборка Xamarin, вероятно, делает некоторые из ее MSBuild/xbuild spelunking с сильными ожиданиями, поэтому, если вы изменили свои файлы csproj для процесса сборки, это может быть возможным преступником.

Ответ 6

Я переключился с стабильного на альфа-канал v.3.11.785 (Alpha). все точки останова теперь поражены.

Ответ 7

Я добавляю этот ответ, потому что это единственный, который работал у меня, в Project Properties > Build я ошибочно проверил Optimize Code. Если снять флажок, проблема решена.

Ответ 8

Я столкнулся с этой проблемой в приложении Xamarin Forms, использующем Visual Studio для Mac. В моем случае это произошло из-за отладчика. Visual Studio постоянно показывал "Ожидание подключения отладчика к симулятору iOS..." во время работы в симуляторе iOS. Я сделал сброс симулятора (Hardware => Erase All Content and Settings) и очистил решение. Тогда я мог бы сделать отладку с точками останова. Надеюсь, это кому-нибудь поможет.

Ответ 9

У меня была та же проблема.

ПРИЧИНА (IMO):

В моем случае проблема вызвана Xamarin Studio (но с VS2013 - это то же самое) процесс build/rebuild.

Подробнее, файлы *.mdb неправильно восстановлены, поэтому отладчик работает неправильно. Вы можете проверить, читая решение и перейдя в папку bin/debug: если вы все еще видите файлы *.mdf, то это проблема и в вашем случае!

Решение

Единственное решение, которое хорошо работает, - это вручную удалить все файлы *.mdb в bin/debug из всех проектов вашего решения (так что проект Android и все проекты PCL), а затем сделать перестроить.

Сообщите мне, если это поможет!

Ответ 10

Для меня "(" и ")" символы также вызывают проблемы, я искал недели для этой проблемы. Удалите "(" и ")" в полном пути, выполните чистую сборку, и точки останова будут снова удалены.

Ответ 11

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

Ответ 12

Если после запуска проекта на устройстве VS возвращается в стандартный режим редактирования (в меню нет параметров отладки), то есть отладчик не подключен; проверьте Свойства проектa > Настройки Android > Включить инструментарий разработчика отмечен. Для меня настройка была отключена (скорее всего, проверена в исходное состояние после выпуска).

Ответ 13

Использовать "Visual Studio для Mac" (предварительный просмотр в данный момент, но работает) вместо "Xamarin Studio".. Это устранило проблему для меня. Точки прерывания работают даже в моих проектах PCL! Другое дело... Мне пришлось сменить "project.json" (формат JSON) на "packages.config" (формат XML) при смене с "Xamarin Studio" на "Visual Studio для Mac".