在 xcode 中使用调试器 Commend 跳转断点

2023-12-27

我在 Xcode 中使用跳转命令设置了一个断点来强制传递某些条件,但是当它执行到第 168 行时,它崩溃并显示消息

"Thread 1: EXC_BAD_ACCESS (code=1, address=0x1)"

为什么会发生这种事?

控制台记录:

警告: MoreMultitypeCollectionViewCell.swift:178 在此函数中出现多次,选择第一个位置:

MoreMultitypeCollectionViewCell.(updateButtonStateCkeck in _9A12557DCAB30EEB52DC7C2EA09487CD)() -> () + 1580 at MoreMultitypeCollectionViewCell.swift:178

MoreMultitypeCollectionViewCell.(updateButtonStateCkeck in _9A12557DCAB30EEB52DC7C2EA09487CD)() -> () + 1600 at MoreMultitypeCollectionViewCell.swift:178

我的问题是:

  1. 我应该如何输入 lldb 来选择位置?
  2. 有没有更好的方法强制传递到 If 语句而不更改代码并重建项目?
  3. 有时,当我在 lldb 中输入“po”或在变量视图中单击“打印描述”时,它会显示失败消息,这是怎么回事?

1)在lldb中,等效命令是thread jump您可以在那里指定地址和行号。

2) thread jump或 Xcode 等效项本质上是危险的操作。如果您跳过某些变量的初始化,您现在将处理错误的数据,并且可能会崩溃。有时你可以通过眼睛发现这种情况 - 尽管 Swift 在初始化方面很懒,所以变量的实际初始化可能不会发生在你认为在源代码中发生的地方。还有更微妙的问题。例如,如果您跳过一些作为其操作副产品保留或释放对象的代码,则该对象最终将低于或超过保留。前者会导致崩溃,后者会导致内存泄漏。这些保留和释放是由编译器生成的,因此您无法在源代码中看到它们,但如果您查看要跳过的代码的反汇编,则可以看到它们。

如果不查看相关代码,我无法判断为什么这个特定的跳转会导致崩溃。

但是您无法 100% 安全地跳过编译器选择发出的某些代码。查看反汇编,您可能能够发现(a)在跳转之前有一个更好的停止位置 - 即停止经过一些导致问题的保留或释放,或者跳转到行中间的地址,这样您仍然可以调用需要保留。你必须手动解决这个问题。

3)没有足够的信息来回答这个问题。

顺便说一句,您的图像链接似乎无法解析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 xcode 中使用调试器 Commend 跳转断点 的相关文章

随机推荐

  • HTML5 Canvas 无法在外部 JavaScript 文件中工作

    我已经用 JavaScript 编写了这段代码 当我将其包含在我的 index html 页面上时 它工作得非常好
  • 什么是“覆盖条件”?

    的来源Statemtl 中的变压器 http hackage haskell org packages archive mtl 2 1 2 doc html src Control Monad State Class html states
  • Sqlite 中的多线程

    我正在使用 System data sqlite 连接到 Sqlite 数据库 按照SQLite 文档 http www sqlite org threadsafe html 用户可以通过使用启用多线程SQLITE OPEN NOMUTEX
  • tkinter treeview单击所选项目的事件[重复]

    这个问题在这里已经有答案了 在我的小型 tkinter 应用程序中 我的树具有如下图所示的结构 我只想在用户双击树的最后一个项目 Amount1 或 Amount2 等 时才创建单击事件 不幸的是 当我单击树的任何项目时 单击事件会起作用
  • Node-gyp 和自定义依赖/库/头安装路径

    我有一个构建环境 其中我的库 和标头 安装到自定义位置 从 npm 安装软件包时 使用 node gyp 的模块会失败 因为它们找不到我已安装的库 或标头 如何让 node gyp 知道我的自定义安装位置 linux 如果你设置CXXFLA
  • 无法连接到服务器 127.0.0.1 shell/mongo.js

    当我在 ubuntu 中设置 mongodb 时 我尝试 mongo 它显示此错误 couldn t connect to server 127 0 0 1 shell mongo js 那么我能做什么 thanks 手动删除锁定文件 su
  • 将对象传递给 PowerShell 函数

    我试图将 SQL 适配器对象传递给 PowerShell 函数 但收到此错误 executeQueryAndFillTable 无法处理参数转换 参数 da 无法转换类型的 System Object 值 System Object 以键入
  • 如何使用Vue登录后渲染标题和侧边栏

    我有一个 Vue js 应用程序 目前我使用不同的页面渲染它 我遇到了一个问题 当我第一次登录时 它只会渲染单个主要组件 即根据 vue 路由器的页面 我正在寻找一种方法来运行我的登录功能 然后转到 dashboard但我希望它重新渲染我的
  • 选择最高薪水

    假设工资表 name lowhours highhours wage Default 0 0 40 0 100 Default 40 0 50 0 150 Default 50 0 70 5 154 Default 70 5 100 0 2
  • 从 Perforce 恢复已删除的文件

    上个月我从 Perforce 中删除了一个文件 有办法从 P4 中检索它吗 如果是这样 我可以使用什么命令 注意 我不是 p4 的管理员 我不希望该文件返回到 P4 但我只想将其保留在我的本地工作区中 另外 我不知道上个月删除它的确切时间范
  • 如何获得unix中每列的最大长度?

    假设 我有一个这样的源文件 ID NAME ADDRESS 1 ABC PUNE 2 XYZA MUMBAI 12 VB NAGPUR 我想获取每列的最大长度 不包括标题名称 输出应该是这样的 2 4 6 我已经尝试过这样的命令 尾部 2
  • 相对于batch的查询成本是100%

    我不确定如何解释这一点 但我在 sql server 2005 中运行的所有查询都有 100 的 查询成本 相对于批处理 有什么办法可以降低成本吗 如果您的批次 您在给定调用中执行的操作 有一个查询 那么relative对于该批次 该查询占
  • 如何在android中获取用户定义的“设备名称”?

    我正在尝试获取在设置中设置的用户定义的设备名称 我已经尝试了几种选择 但到目前为止还没有任何结果 如果它有帮助或有害 我需要在广播接收器中使用它 Thanks 这让我得到了我所需要的 http cmanios wordpress com 2
  • 如何从 Google Apps 脚本上的“doPost”请求获取原始 URL

    我一直在尝试识别对 Google Apps 脚本发出的 POST 请求的来源doPost 内容服务 function doPost request Something like this var originURL request head
  • 如何为列表框中的每个项目设置不同的工具提示文本?

    我有一个与对象集合进行数据绑定的列表框 列表框被配置为显示每个对象的标识符属性 我想显示一个工具提示 其中包含悬停在 列表框中的项目的特定信息 而不是整个列表框的一个工具提示 我正在 WinForms 中工作 感谢一些有用的博客文章 整理了
  • 无法在跨客户端google oauth2.0中交换访问令牌和刷新令牌的授权代码

    我在 Android 应用程序上实现 Google Play 服务登录并将授权代码传递到后端服务器时遇到问题 因此服务器将交换访问令牌和刷新令牌的代码 首先让我写几行已经尝试过 读过的内容 在 code google com apis co
  • Zookeeper 的临时 znode 的用例是什么?

    Zookeeper 文档内容如下 ZooKeeper 也有临时节点的概念 只要创建 znode 的会话处于活动状态 这些 znode 就会存在 当会话结束时 znode 将被删除 当您想要实现 待定 时 临时节点非常有用 我了解其功能 但是
  • PHP - 下载次数

    如何显示一个计数器来计算文件的下载次数 我以前见过 下载了 450 次 谢谢 不要让用户直接下载文件 而是通过如下脚本 file REQUEST file dldir downloads if file exists dldir file
  • 计时器、单击、mousedown、mouseup 事件不能一起工作

    正在寻找有关我遇到的问题的帮助 抱歉 如果这个问题已经被问过 我找不到类似的东西 这个想法是当点击图片框时将图像更改为ON 如果按住图片框超过 2 秒以打开新表单并将图片框保留为 关闭 但是 如果图片框被单击 打开 然后按住 2 秒然后返回
  • 在 xcode 中使用调试器 Commend 跳转断点

    我在 Xcode 中使用跳转命令设置了一个断点来强制传递某些条件 但是当它执行到第 168 行时 它崩溃并显示消息 Thread 1 EXC BAD ACCESS code 1 address 0x1 为什么会发生这种事 控制台记录 警告