ios – 使用lldb使用Xamarin调试本机库

ios – 使用lldb使用Xamarin调试本机库,第1张

概述Xamarin debugging documentation表示: Use Xamarin Studio’s native debugging support for debugging C# and other managed languages code and use LLDB when you need to debug C, C++ or Objective C codethat yo Xamarin debugging documentation表示:

Use Xamarin Studio’s native deBUGging support for deBUGging C# and
other managed languages code and use LLDB when you need to deBUG C,
C++ or Objective C codethat you might be linking with your Xamarin.iOS
project.

但是我找不到任何有关如何使用LLDB调试Xamarin应用程序的文档.如果我在iPhone模拟器中运行我的应用程序,并尝试使用LLDB附加到它,我会收到以下错误:

(lldb) attach --pID 37993Process 37993 exited with status = -1 (0xffffffff) lost connectionerror: attach Failed: lost connection

使用Xcode附加也不会.我尝试了附件的不同变体,但没有一个工作.

有人可以指出我正确的方向,如何使用LLDB调试Xamarin应用程序?此外,我可以在设备上做什么,而不仅仅是在模拟器中?我没有找到有关如何使用LLDB附加到设备上的进程的任何信息.

更新

当我使用lldb连接到我的二进制文件时,看起来调试服务器进程崩溃.以下是调试服务器崩溃报告的链接:
https://www.dropbox.com/s/9lizhl2quj9n0cc/debugserver_2015-07-07-131423_gauss.crash?dl=0

更新2

当我在应用程序上运行dtruss时,会打印系统调用,直到遇到

dtrace:启用的探测器ID 2475上的错误(ID 194:syscall :: ptrace:return):DIF偏移量0处于 *** 作#5的无效用户访问

当某个东西调用ptrace(PT_DENY_ATTACH,0);为什么要PT_DENY_ATTACH?

更新3

我跟踪了这​​个函数的ptrace系统调用:mono_assembly_init_with_opt,这在程序的生命中很早就发生了.所有这些功能都是调用ptrace,所以如果我刚刚从该函数返回,我可以使用lldb进行调试.

基本上我可以做:

(lldb) process attach --name Appname --waitfor# when the process starts(lldb) b mono_assembly_init_with_opt    (lldb) c# when the thread breaks(lldb) thread return 0(lldb) c

现在我可以用lldb快乐地调试.

但是,我不应该这样做.我的项目配置有什么问题(我可以用lldb调试更简单的应用程序)还是Xamarin是邪恶的?

解决方法 Mac OS X上的编码应用程序只能在其应用程序pList中设置特定属性时进行调试.你想要的东西看起来像:
<key>SecTaskAccess</key><array>    <string>allowed</string>    <string>deBUG</string></array>

你可以看看这个任务的手册页,对这个过程进行一些简洁的描述.

通常对于Xcode项目,这个属性被Xcode插入到你的调试版本中,所以你不需要做任何事情来实现这一点.

我不知道Xamarin是如何工作的,但是它不可能设置此属性.在较旧的OS X系统上,root可以调试任何东西,所以您可以尝试sudo -s,然后从那里调试.但是从优胜美地开始,不被调试的请求得到更广泛的尊重…

总结

以上是内存溢出为你收集整理的ios – 使用lldb使用Xamarin调试本机库全部内容,希望文章能够帮你解决ios – 使用lldb使用Xamarin调试本机库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存