出于调试目的,是否可以在程序运行时打印出更改以查看视图,而无需停止调试 session ?

最佳答案

您可以使用LLDB断点命令来执行此操作。

(lldb) br set -S setFrame:
Breakpoint 4: 133 locations.
(lldb) br command add 4
Enter your debugger command(s).  Type 'DONE' to end.
> e (void) NSLog(@"frame change for %@:", $rdi)
> continue
> DONE
(lldb) c
Process 34698 resuming

此代码访问x86_64寄存器self中的rdi,但访问正确的寄存器depends on your architecture。它通过在选择器setFrame:的任何调用上设置断点并在触发断点时运行LLDB评估命令来实现此目的。然后,在打印框架之后,breakpoint命令将恢复执行。

这会将框架更改输出到应用程序中的任何视图。如果要在框架更改时进入调试器,请省略continue命令。

关于ios - 是否可以跟踪对UIView框架的更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29107100/

10-13 07:08