如何从 obj-c / ios 中的堆栈跟踪获取源代码行

2024-05-07

I use NSSetUncaughtExceptionHandler将堆栈跟踪打印到 iPhone 中的本地文件,该文件将在下次应用程序启动时发送到我们的服务器。然后我可以检查异常数据并修复错误。 在某些崩溃中,我有模块名称和引发异常的函数,这些很简单。 但大多数情况下我有这样的事情:

"4   libc++abi.dylib 0x35bba3c5 _ZL19safe_handler_callerPFvvE + 76",
"5   libc++abi.dylib 0x35bba451 _ZdlPv + 0",
"6   libc++abi.dylib 0x35bbb825 __cxa_current_exception_type + 0",
"7   libobjc.A.dylib 0x37bab2a9 objc_exception_rethrow + 12",
"8   CoreFoundation  0x3575a50d CFRunLoopRunSpecific + 404"

例如原因:

*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array

但我的应用程序中有数十个数组,因此我需要帮助使用从堆栈跟踪中获取的数据来查找引发异常的特定行。

有谁知道 Apple 或其他公司的一篇好文章/教程,我可以在其中学习解码堆栈跟踪中的数字以找到源代码中有问题的行。 提前致谢!


我强烈建议在 Xcode 中启用异常断点。它将在导致应用程序崩溃的确切行停止执行代码。因此您无需担心是哪一个阵列导致崩溃。 *** -[__NSArrayI objectAtIndex:]: 索引 0 超出空数组的范围

添加异常断点

  1. 转到 Xcode 上的断点部分
  2. 单击该部分底部的加号
  3. 选择添加异常断点
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 obj-c / ios 中的堆栈跟踪获取源代码行 的相关文章

  • 如何使 for 循环以与 NSLog(@"%@", arrData) 相同的顺序迭代

    我执行了以下代码NSLog arrData 调试器中的输出预计如下所示 0 first name John 1 first name Florence 2 first name Melinda 3 first name Zack 然后我执行
  • 在 swift3 中结合平移、alpha 和缩放动画

    我是 iOS Swift 开发的新手 我尝试将三个参数组合在一个动画中 但没有成功 我认为解决方案就在这里 Apple Dev Core 动画编程指南 https developer apple com library content do
  • SQLiteException - 仅发生在某些设备上

    我最近向市场发布了一个应用程序 从开发者控制台来看 我的用户中大约有 1 2 遇到了这个问题 1 2 的比例很小 但人们更倾向于在某些内容不起作用时留下评论 而不是在它起作用时留下评论 这可能会对下载产生负面影响 不幸的是 开发人员控制台仅
  • 我如何获取用户的电子邮件? iPhone SDK

    我需要获取 Mail app 中使用的用户的电子邮件地址 如何使用 iPhone SDK 做到这一点 谢谢你 简短的回答 你不能 如果需要 您应该提示用户输入电子邮件地址
  • 核心数据 NSFetchRequest 还获取实体的子对象

    我是 iOS 开发和 Core Data 的新手 我有一个父 NSManagedObject class Units interface Properties NSManagedObject property nonatomic retai
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 如何检查 BOOL 是否为空?

    有没有办法在将值分配给 BOOL 之前检查该值是否为 NULL Nil 例如 我在 NSDictionary 中有一个值可以是 TRUE FALSE NULL mySTUser current user following results
  • Visual Studio 加载符号

    我正在研究一个冷聚变 http en wikipedia org wiki ColdFusion项目已经有一段时间了 Visual Studio 至少对我来说开始表现得很奇怪 我观察到 当我开始调试时 它构建了项目 开始部署 部署完成并开始
  • 使用 Simulator 时 Xcode 10 中的屏幕截图尺寸错误

    我正在尝试使用 Xcode 10 模拟器为 iTunes 制作屏幕截图 但图像大小错误 我读过Debug gt Optimize Rendering for Window Scale会有帮助 但在 Xcode 中没有这样的选项 有人有这个问
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • 无法在 iOS 企业应用程序中连接到 example.com

    我面临着一个严重的问题 我正在尝试使企业应用程序上线 通过使用 BetaBuilder 我按照以下步骤操作 myApp ipa manifest plist index html 清单 plist
  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条

随机推荐

  • 屏幕关闭时接近传感器不起作用?

    Hy 我有一个与接近传感器相关的问题 当我将手指放在上面时 我想关闭屏幕 当我拿开手指时 我想打开屏幕 我成功地完成了关闭部分 但是当我将手指从传感器上移开时 它似乎没有执行 onSensorChanged 方法 这是它的代码 public
  • PL/SQL 触发器问题

    我正在尝试编写一个触发器来填充包含员工更新工资信息的表 我现在遇到一个无法解决的问题 这是要填充的表 drop table SalUpdates cascade constraints create table SalUpdates Sal
  • 如何替换每行中出现的所有字符串?

    我想在以下脚本中将所有出现的 用户名 替换为 但它仅替换第一次出现的情况 ls al sed s username 这就是 sed 默认情况下的工作方式吗 提前致谢 你需要g 全局 修饰符 sed s username g
  • 同步不经常更新的哈希图的最佳方式

    我有一个在应用程序中使用的 HashMap 数据是在应用程序初始加载期间从数据库填充的 然后它始终只是读取并且从不更新 会有多个线程不断地读取数据 由于数据永远不会更新 因此我们目前不使用任何同步 仅使用 HashMap 我们现在定义的方式
  • 修改“NodeJS”上的 XML 标签

    有谁知道如何使用 NodeJS 修改 XML 文件的标签值 这是我的 XML 文件
  • 动态更新 bootstrap 3 日期选择器选项?

    该日期选择器已经使用其他默认选项创建 但我需要使用以下新选项更新它 但它似乎不起作用 new options var new options format dd mm yyyy autoclose true language es upda
  • Node.js+Express 随机丢弃请求,导致网关超时

    EDIT 经过一番思考 我终于找到了一些看起来可能是可靠的线索 当 Express 库当前正在使用 Node OAuth 模块执行多个出站请求 例如 到 Facebook Twitter 等 时 它无法接受传入请求 我能够通过在代码中放置大
  • 这里不允许使用数组初始值设定项[重复]

    这个问题在这里已经有答案了 我正在开发 Android 项目 但收到一个我无法理解的错误 这里不允许使用数组初始值设定项 我试图简化我的代码 结果归结为这一点 public class MainActivity extends Activi
  • 我可以用一个命令销毁并重新创建 Git 远程分支吗?

    在 Git 中 我有时会在长期运行的分支上工作 我喜欢时不时地重新建立 master 基础 以便在准备好时使合并变得更容易 变基后 我无法将先前推送的分支推送到远程 因为我的分支的历史记录不再与该分支的远程历史记录一致 所以我必须先删除它
  • ModelMapper:匹配多个源属性层次结构

    我无法解决 modelMapper 错误 您知道问题出在哪里吗 注意 鉴于 java sql Time 没有无参构造函数 我没有找到比编写转换器更好的方法 org modelmapper ConfigurationException Mod
  • Firebase 管理员在连接到 Auth 模拟器时出现错误 ECONNREFUSED

    我正在尝试使用 Firebase Admin SDK 列出我的 Firebase 项目的所有用户 从 Cloud Auth Service 列出时 以下用于列出用户的函数可以正常工作 const admin require firebase
  • 如何在类路径上遍历目录树查找资源文件?

    我在类路径上有一个资源集合 大致如下 com example foo r1 txt r2 txt r3 txt bar b1 txt b2 txt baz x txt y txt 我知道这个包位于 WEB INF lib 中的类路径上 我希
  • 灵活的数组成员和指针成员:优缺点?

    使用灵活数组成员 FAM 或指针成员有什么区别 在这两种情况下 必须逐个元素地进行 malloc 和影响 但对于 FAM 内存分配是针对整个结构完成的 而对于 ptr 成员 内存分配是仅针对 ptr 成员完成的 参见代码 这两种方法的优缺点
  • 搜索栏小部件未启动可搜索活动

    我正在尝试使用操作栏中的搜索栏小部件在我的 Android 应用程序上实现搜索 我正在关注 http developer android com guide topics search search dialog html http dev
  • 如果maven中没有为资源过滤设置环境变量,如何使用默认值?

    我正在使用资源过滤来替换属性文件中的一些 values 例如该文件包含 属性 值 我希望将 VALUE 替换为环境变量 VALUE 如果在构建运行时设置了 VALUE 则效果很好 惊人的 但是 这些环境变量仅在我们的官方构建环境 由 Jen
  • 免费 RTF 转 PDF .NET 组件或工具? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在尝试将 RTF 文件转换为 PDF 到目前为止我发现的所有工具都花了很多钱 是否有我可以调用的工具或组件可以将现有 RTF 文件转换为 PDF
  • UIWebView 的“loadData”方法在 Swift 2 中不接受 nil 作为 baseURL

    我不想将任何值传递给 baseURL 参数loadData的方法UIWebView 在斯威夫特 1 2 中 nil工作正常 self loadFundInfo loadData responseData MIMEType contentTy
  • ArticxEngine.exe 中 0x777122D2 (ntdll.dll) 处未处理的异常:0xC0000005:访问冲突写入位置 0x00000004

    我完全不确定为什么在 VS2012 中运行程序时会出现此错误 Visual Studio 似乎将问题引向sf RenderWindow Articx window in Articx cpp ArticxEngine exe 中 0x777
  • 使用 %w[] 创建包含空字符串的数组

    创建包含空字符串的数组 a b c 不是一个空格字符串 使用 W我可以用 W a b c 我也可以连接数组 但是是否可以使用空字符串创建数组 w 几个选项 W a b c z W a b c lt lt 我知道这没有使用 w 语法 但为了更
  • 如何从 obj-c / ios 中的堆栈跟踪获取源代码行

    I use NSSetUncaughtExceptionHandler将堆栈跟踪打印到 iPhone 中的本地文件 该文件将在下次应用程序启动时发送到我们的服务器 然后我可以检查异常数据并修复错误 在某些崩溃中 我有模块名称和引发异常的函数