使用Microsoft调试器与Xamarin Android

“打包”选项卡上的“ Android选项”部分中的Android项目设置中有一个选项,可让您在Xamarin调试器或Microsoft调试器之间进行选择. Xamarin调试器可以工作,但不如微软那么好.不幸的是,我在尝试使用Microsoft调试器并在其中一个Visual Studio Android仿真器上部署时收到错误消息.

Unable to start debugging. Non-debuggable application installed on the target device. required file ‘/data/data/My.Application/lib/gdbserver’ Could not be found on the device. Please install a debuggable version.

有没有办法让Microsoft调试器工作?

Xamarin调试器只能调试托管(即C#)代码.如果正在调试的项目是托管项目,则断点仅适用于Xamarin调试器.如果项目是本机应用程序或本机库,则它们不起作用.

Microsoft调试器只能调试本机(即C/C++)代码.如果正在调试的项目是本机应用程序或本机库,或者如果它附加到已经运行的Android进程,则断点仅适用于Microsoft调试器.

要将gdbserver放入应用程序包,您必须从托管应用程序引用本机代码库,或者包含它(将构建操作设置为AndroidNativeLibrary).我发现你还可以从项目中添加一个指向gdbserver的链接(再次,将build action设置为AndroidNativeLibrary),并使用路径嗅探从匹配的ABI中选择gdbserver.项目文件片段:

<ItemGroup>
    <AndroidNativeLibrary Include="$(ANDROID_NDK_ROOT)\prebuilt\android-arm\gdbserver\gdbserver">
      <Link>lib\armeabi-v7a\gdbserver</Link>
    </AndroidNativeLibrary>
  </ItemGroup>

另请参阅my answera similar question.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...