出于调试目的,是否可以在程序运行时打印出 View 帧的更改,而无需停止调试 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 寄存器 rdi
中的 self
,但正确的寄存器 depends on your architecture 。它通过在选择器 setFrame:
的任何调用上设置断点并在触发断点时运行 LLDB 评估命令来实现此目的。断点命令在打印帧后恢复执行。
这会将帧更改输出到应用程序中的任何 View 。如果您想在帧更改时进入调试器,请省略继续
命令。
关于ios - 是否可以跟踪 UIView 框架的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29107100/