断点没有在Xamarin Studio中被击中

时间:2015-04-08 06:03:31

标签: c# debugging xamarin xamarin.forms xamarin-studio

我的断点在Xamarin Studio中没有被击中。我不确定这是否与我的代码有关,但我觉得它不是因为我已经在我的项目中一遍又一遍地尝试断点(在我知道他们应该肯定是的地方)命中,并且在代码完美运行并且与我正在测试的功能完全无关的地方,并且当我调试时它们都没有得到确认。我没有禁用断点,我没有将它们添加到错误的位置。断点应该正常工作,而不是。我还要补充一点,我不允许在调试过程中暂停我的应用程序。我想你可以说我的Xamarin Studio中的调试器不工作,我不明白为什么。我相信我已经确定它与代码无关,但我仍然无法确定。请帮忙。谢谢。

13 个答案:

答案 0 :(得分:18)

这是最受欢迎的问题:"断点不会受到xamarin打击"在谷歌,所以经过一整天的试验和错误,我将在这里发布一个解决这个问题的xamarin版本> 4.0.0.xxx。是的,遗憾的是这很简单。

<强>解 (此解决方案适用于Visual Studio中的Android应用程序,但也适用于xamarin工作室)

从&#34; Debug&#34;的路径中删除所有符号。文件夹(通常:[.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

对我来说&#34;(&#34;和&#34;)&#34;符号造成了麻烦(无论如何,谁在路径中使用这些符号?)

要验证这是否有效,请打开调试文件夹,在VIsual Studio Select&#34; Clean Solution&#34;,&#34; Recompile Solution&#34;,&#34; Deploy&#34;。

&#34;部署&#34; action应该生成包含调试数据的* .mdb文件。如果他们在场,你现在应该能够在断点处停下来。

现在,只要您需要调试某些内容,就可以像往常一样点击F5。

enter image description here

答案 1 :(得分:9)

我不确定是否有人仍在关注此主题,但此解决方法对我有用。 问题有时与单声道5有关。

所以分辨率是使用较旧版本的mono:

设置&#34;项目&gt; Active Runtime&#34; to&#34; Mono 4.8.0(8f6d0f6)(/ Library / Frame / Mono.framework / Version / 4.8.0)&#34;。

对于Mac用户,请在&#34;偏好设置&#34;中进行更改。 - &GT; &#34; .NET Runtimes&#34;

然后重建Android应用程序项目。

答案 2 :(得分:3)

删除BIN文件夹和任何* .SUO文件是此问题的最佳解决方法。

也可以尝试删除任何* .csproj.user

在最坏的情况下,通过使用&#34; Devenv.exe / ResetSettings&#34;

启动(运行)来重置VS设置

答案 3 :(得分:1)

  1. 确保将构建配置设置为Debug。
  2. 确保将项目的构建设置设置为允许为Debug配置发出DEBUG符号。
  3. 清理并重建您的解决方案/项目。
  4. 关闭并重新启动Xamarin Studio。
  5. 重新启动计算机。
  6. 有时,解决方案的构建配置会变得复杂,在构建复杂的构建配置时很容易遗漏。确保一切都在那里正确设置。

答案 4 :(得分:1)

昨天我使用VS 2013和Xamarin插件遇到了这个问题。尽管Android项目中的断点仍然存在,但PCL项目中的“突然”断点并未激活。几周以来,一切都运作良好,我没有应用任何更新。看看VS Debug | Windows |模块视图,我可以看到没有为PCL程序集加载符号,我尝试的任何内容都不会强制它们加载,即使它们存在于运行程序集的文件夹中。

然后我记得我前一天做的最后一件事与代码无关,但是对csproj文件进行了一些重构以支持参数化的Jenkins构建。我在第一个“共享”PropertyGroup中放置了一个OutputPath定义,并将其从所有Configuration / Platform特定的PropertyGroup中删除,例如:

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

我删除了这个“常见的”OutputPath并将其放回每个特定的PropertyGroup中(冒犯我的DRY感觉,请注意),事情又开始了。

这可能不会咬很多人,但是浪费了我几个小时的时间,所以希望它可以饶恕别人。 Xamarin构建可能会对其部分MSBuild / xbuild进行一次强烈的期望,所以如果您为构建过程修改了csproj文件,这可能是一个可能的罪魁祸首。

答案 5 :(得分:0)

我从稳定转换为alpha频道v.3.11.785(Alpha)。所有断点现在都被击中了。

答案 6 :(得分:0)

我添加了这个答案,因为这是唯一适用于我的答案,Project Properties > Build我错误地检查了Optimize Code。 取消选中此框可以解决问题。

答案 7 :(得分:0)

我在使用Visual Studio for Mac的Xamarin Forms应用程序中遇到了此问题。就我而言,这是由于调试器而发生的。在iOS模拟器中运行时,Visual Studio不断显示“正在等待调试器连接到iOS模拟器...”。我确实重置了模拟器(硬件 => 擦除 全部 内容 设置)并清理解决方案。然后,我可以使用断点进行调试。希望这对某人有帮助。

答案 8 :(得分:-1)

我遇到了同样的问题。

原因(IMO):

在我的情况下,问题是由Xamarin Studio(但与VS2013相同)构建/重建过程引起的。

更详细地说,* .mdb文件未正确重新生成,因此调试器无法正常工作。 您可以通过清理解决方案并转到bin / debug文件夹来检查:如果您仍然看到* .mdf文件,那么这也是您的问题!

<强>解

唯一可行的解​​决方案是手动删除解决方案中所有项目的bin / debug中的所有* .mdb文件(所以Android项目和所有PCL项目),然后进行重建。

请告诉我这是否有帮助!

答案 9 :(得分:-1)

对我来说&#34;(&#34;和&#34;)&#34;符号也造成了麻烦,我正在寻找这个问题的几个星期。删除&#34;(&#34;和&#34;)&#34;在完整路径中,再次点击干净的构建和de断点。

答案 10 :(得分:-1)

就我而言,xamarin没有击中任何断点。显示红色圆圈而不是填充红色圆圈,因为xamarin无法指出一些语法错误,因为我认为解决方案构建不是最新,即使我能够运行该应用程序令人惊讶。所以我清理了构建解决方案,并在此之后指出了错误和相关警告。我修复了这些,然后运行了项目。之后我能够成功调试!

答案 11 :(得分:-1)

如果项目在设备上启动,则VS恢复到标准编辑模式(菜单中未启用调试选项),即未附加调试器;检查项目属性&gt; Android选项&gt; 启用开发者工具 已选中。对我来说,设置被禁用(很可能在发布后检入源代码管理中)。

答案 12 :(得分:-1)

使用&#34; Visual Studio for Mac&#34; (暂时预览,但有效)而不是&#34; Xamarin Studio&#34;。这解决了我的问题。即使在我的PCL项目中,断点也在起作用!另一件事......我不得不改变&#34; project.json&#34; (JSON格式)到&#34; packages.config&#34; (XML格式)从&#34; Xamarin Studio&#34;更换时到&#34; Visual Studio for Mac&#34;。