jjzjj

ios - LLDB( swift ): Casting Raw Address into Usable Type

是否有LLDB命令可以将原始地址转换为可用的Swift类?例如:(lldb)po0x7df67c50asMKPinAnnotationView我知道这个地址指向一个MKPinAnnotationView,但它不在我可以选择的框架中。但是,我想将原始地址转换为MKPinAnnotationView,以便我可以检查它的属性。这可能吗? 最佳答案 在Xcode8.2.1和Swift3下,lldb命令po或p将不起作用与类型变量。您将需要使用快速命令print来检查类型化对象实例的属性。(感谢cbowns'sanswer!)例如:expr-

c++ - LLDB 为局部变量给出 "use of undeclared identifier"错误

在以下函数中,我无法在LLDB中看到“recordMap”。for循环打印键,recordType设置正确,但'precordMap'给出错误“使用未声明的标识符”。我可以在LLDB中看到变量“recordType”,所以我在正确的范围内。当我在LLDB中输入“recordMap”时,它会自动完成,就好像它就在那里一样。我已将调试和发布的优化设置为“无”。这可能是什么!?voidMezNetworkController::showRecord(std::maprecordMap){for(autoitem:recordMap)printf("KEY:%s\n",item.first.c

c++ - lldb 没有启动应用程序

这是我第一次体验lldb的命令行模式。不成功。使用clang、lld、lldbv5(ubuntu16.04)安装了最小套件使用clang构建的示例应用程序。尝试开始:lldbapplcation>runerror:processlaunchfailed:unabletolocatelldb-server-5.0.0那么现在的问题是:为什么lldb尝试运行服务器?这不是远程调试。为什么lldb引用5.0.0(以及在哪里更改此设置)?实际上,所有llvm实用程序都自动添加了带有xxx-5.0后缀的符号链接(symboliclink),但没有xxx-5.0.0。如果这是指lldb-serve

ios - lldb - 如何覆盖字典中的值?

因此,我正在使用lldb(无Xcode)远程调试应用程序,我想修改字典中的一个值。当我执行'po$x0'时,字典看起来像这样:{amount="2.00";idNumber=87677;}当我打印2.00的“类”时,我得到NSDecimalNumber我已经尝试访问它并且只能读取“数量”值:po[$x0objectForKey:@"amount"]2.95我希望能够将金额值覆盖为1.00——我尝试这样做:e(NSString*)[$x0objectForKey:@"amount"](NSString*)$24=0x00000001c2c22180(lldb)memorywrite0x0

ios - LLDB - 如何在不停止进程的情况下附加到进程

我正在寻找一种方法来附加到使用lldb的进程而不停止它。我正在调试的程序存在竞争条件,我担心暂停会导致更多的熵。类似的问题,但针对gdb:gdbattachtoaprocesswithoutstop.使用的版本:lldb-vlldb-900.3.72 最佳答案 这在x86_64或ARMv8-A上是不可能的(我在这里做了一个假设,但它代表大多数现代操作系统设计/架构)。一般来说,任何时候进程(暂时忘掉实时的东西)进行系统调用或被中断(在抢占式操作系统中,这可能以多种方式发生)它都会屈服于操作系统,此时有一个在执行返回到该点之前,它可能

ios - Xcode 4.6 在使用 LLDB 调试器时卡在 "Attaching to..."

正如标题所说,我在使用LLDB时遇到了问题。我查看了这个线程Xcode4hangsonattachingto(Appname)whendebuggerissettoLLDB并按照给出的说明进行操作,因为我遇到了完全相同的问题,并通过使用GDB进行了调试-它完美无缺。无论如何,我在一个团队中工作,而且我是唯一遇到这个问题的人,所以每次我提交更改时从GDB来回切换到LLDB有点烦人,所以解决方法不会在远程存储库。我检查了编译器,它设置为LLVM4.2。事实上,该应用程序编译完美并安装在模拟器中(我可以在我终止并重新启动Xcode后执行它)。我会尝试重新安装Xcode,但这很麻烦,因为它是一

ios - LLDB Python 访问 iOS 变量?

作为调试可能与我的UIVIews相关的问题的一部分,我想编写一个从LLDB运行的python脚本。我曾想在断点和所有View子项中提取View的所有设置,以允许我比较状态。我查看了有关该主题的WWDC视频,然后花时间阅读lldb.llvm.org/scripting.html上的内容,但没有发现它们很有帮助。在网络上搜索示例,结果与这些示例没有实质性不同。我的问题是我试图弄清楚如何在我的断点处访问iOS变量。我见过的示例执行诸如转换数字和模拟shell命令之类的操作。有趣的东西,但对我的目的没有用。我一直在阅读“脚本帮助(lldb.SBValue)”等帮助信息,但进展缓慢,因为结果很大

ios - 如何在 LLDB 调试器中打印 C 变量?

正如问题所说。在Xcode4.6中。想要打印整数、字符、数组、自定义结构等。可能吗?使用Objective-C我可以做类似的事情:整数三=3;po[NSStringstringWithFormat:@"%i",三];谢谢。 最佳答案 po代表PrintObject,本质上是调用对象的description方法。使用p打印一个整数。例如:pthree 关于ios-如何在LLDB调试器中打印C变量?,我们在StackOverflow上找到一个类似的问题: http

ios - 如何在 Xcode lldb 控制台窗口中显示 UITableView indexPath.row

如何在控制台窗口中打印出UITablesindexPath.row。我不想到处添加NSLogs。我一直收到“不是成员(member)”或属性(property)。(lldb)expr(int)printf("%d\n",self.lastChangedIndexPath->_row)error:'NSIndexPath'doesnothaveamembernamed'_row'(lldb)printself.lastChangedIndexPath->_rowerror:'NSIndexPath'doesnothaveamembernamed'_row'(lldb)printself.

objective-c - 代码/LLDB : How to get information about an exception that was just thrown?

好的,假设我在objc_exception_throw中的断点刚刚触发。我正坐在调试器提示符下,我想获得有关异常对象的更多信息。我在哪里可以找到它? 最佳答案 异常对象作为第一个参数传入objc_exception_throw。LLDB提供了$arg1..$argn变量来引用正确调用约定中的参数,从而使打印异常详细信息变得简单:(lldb)po$arg1(lldb)po[$arg1name](lldb)po[$arg1reason]确保在执行这些命令之前选择调用堆栈中的objc_exception_throw帧。请参阅WWDC15s