Reveal打断点模拟器调试

本文详细介绍如何通过Reveal工具进行iOS应用的视图调试。包括创建.lldbinit文件并设置调试别名,以及在AppDelegate类中增加断点的具体步骤。

Reveal


注: 此处介绍Reveal,其中大部分内容来自于唐巧的《iOS开发进阶》一书,以此说明。


如何使用Reveal进行模拟器调试,只需进行以下三个步骤即可。


1. 创建.lldbinit文件


  1. vim ~/.lldbinit  


2. 输入以下内容,创建别名


  1. command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib"0x2);  
  2.   
  3. command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);  
  4.   
  5. command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];  
  6.   
  7. command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object: nil nil];  



其中各个别名的含义:
  •  `reveal_load_sim` 为模拟器加载reveal调试用的动态链接库
  •  `reveal_load_dev` 为真机加载
  •  `reveal_start` 启动reveal调试功能
  • *`reveal_stop` 结束reveal调试功能


3. 增加断点

定位到AppDelegate类中的`application:didFinishLaunchingWithOptions:`方法,进行以下三个步骤:
  1. 增加一个断点,右键单击断点,选择`Edit Breakpoint`
  2. 单击`Action`,然后输入`reveal_load_sim`
  3. 勾选上`Options`上的 `Automatically continue after evaluating`


### 如何在 VSCode 中为 Python 代码设置断点并启动调试 在 Visual Studio Code (VSCode) 中调试 Python 代码是一项非常重要的技能,它可以帮助开发者快速定位和修复程序中的错误。以下是关于如何在 VSCode 中为 Python 代码设置断点并启动调试的具体说明。 #### 设置断点 要在 VSCode 中为 Python 代码设置断点,只需打开目标源代码文件,在左侧的行号处单击鼠标左键即可。此时,该行会显示一个红色圆点标记,表示已成功设置了断点[^2]。需要注意的是,断点通常应放置在希望暂停执行以便检查变量状态或其他运行时信息的关键位置。 #### 启动调试 为了能够顺利地触发之前设定好的断点并进入调试模式,首先需要正确配置项目的 `launch.json` 文件。如果这是第一次针对当前项目进行调试操作,则可以通过点击顶部菜单栏上的 “Run” -> “Add Configuration...”,按照向导指引完成初始配置过程。对于大多数标准情况而言,默认生成的内容基本满足需求无需额外修改太多参数项;不过如果有特殊要求比如传递命令行参数给脚本或者指定工作目录等等,则可能还需要进一步调整这些选项来适应具体场景下的实际状况[^2]。 当一切准备就绪之后,可以从活动栏找到绿色三角形按钮代表“Start Debugging”。一旦按下这个按键并且程序运行到任何一个预设断点所在的位置时就会自动停止下来等待用户的下一步指示——这时候就可以利用各种工具窗口查看局部/全局变量值、调用堆栈轨迹以及其他有用的数据辅助分析问题根源所在之处了[^2]。 ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] } ``` 以上展示了一个简单的用于调试当前正在编辑之单一py文档实例的基础版本JSON对象结构定义样例[^2]。 #### 自动格式化功能的小贴士 另外值得一提的是,在日常编码过程中保持良好的代码风格同样重要。因此建议启用VSCode内置支持或第三方提供的自动化解决方案帮助实现这一目的。例如可通过如下路径访问相关设置界面:“Extensions Marketplace Search Results Page For Installed Items Section Of A Specific Add-on Product Detail View Area Where There Exists An Option Button Labeled With Icon Resembling Gear Shape Next To Its Name Entry Field Which Upon Being Clicked Will Reveal More Advanced Customization Opportunities Including But Not Limited To Enabling Auto Formatting Behavior When Saving Files.” 这一特性极大地提升了工作效率的同时也减少了因人为疏忽而导致潜在隐患的可能性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值