-[NSRangeException raise] 上的符号异常断点

2024-03-16

在 Xcode 中添加符号断点为您提供了一个示例模板-[NSException raise]。我想做同样的事情但是具体来说 on -[NSRangeException raise]。原因是我想断点only关于特定数组边界异常,例如:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 31 beyond bounds [0 .. 30]'

是的,我知道我可以添加一个捕获所有异常断点。但是,我不想这样做,因为我不想在使用该应用程序过程中生成的许多异常上设置断点。

我根据其他相关帖子尝试了很多事情NSException。然而,我还没有发现任何可以成功工作的东西。

例如我尝试过:

这篇日记条目也很有趣,尽管没有结论:

处理 NSArray“越界” http://karanmisra.com/journal/2008/08/dealing-with-nsarray-out-of-bounds.html

所以,基本上,问题是,在 Xcode 中,如何专门且仅在范围异常上断点?


NSRangeException 不是一个类:

grep NSRangeException /System/Library/Frameworks/Foundation.framework/Headers/NSException.h FOUNDATION_EXPORT NSString * const NSRangeException;

事实证明,范围异常只是 NSException,其名称为 NSRangeException,即:

(lldb) b s -n objc_exception_throw
Breakpoint 2: where = libobjc.A.dylib`objc_exception_throw, address = 0x00007fff8e3c2e4a
(lldb) c
Process 58216 resuming
Process 58216 stopped
* thread #1: tid = 0x1d7f4b, function: objc_exception_throw , stop reason = breakpoint 2.1
    frame #0: 0x00007fff8e3c2e4a libobjc.A.dylib`objc_exception_throw
libobjc.A.dylib`objc_exception_throw:
-> 0x7fff8e3c2e4a:  pushq  %rbp
   0x7fff8e3c2e4b:  movq   %rsp, %rbp
   0x7fff8e3c2e4e:  pushq  %r15
   0x7fff8e3c2e50:  pushq  %r14
(lldb) bt 
* thread #1: tid = 0x1d7f4b, function: objc_exception_throw , stop reason = breakpoint 2.1
    frame #0: 0x00007fff8e3c2e4a libobjc.A.dylib`objc_exception_throw
    frame #1: 0x00007fff841ca1df CoreFoundation`-[__NSArrayI objectAtIndex:]
    frame #2: 0x0000000100000eb9 range-exception`-[Foo throwIt] at range-exception.m:14
    frame #3: 0x0000000100000f27 range-exception`main at range-exception.m:22
    frame #4: 0x00007fff8468d5fd libdyld.dylib`start
    frame #5: 0x00007fff8468d5fd libdyld.dylib`start
(lldb) expr (NSString *) [((NSException *) $arg1) name]
(NSString *) $0 = 0x00007fff74177990 @"NSRangeException"

因此,您可以在 objc_exception_throw 上设置断点,并编写一个断点条件,将名称与 NSRangeException 进行比较。就像是:

[(NSString *) [((NSException *) $arg1) name] isEqual: (NSString *) NSRangeException]

应该可以解决问题。

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

-[NSRangeException raise] 上的符号异常断点 的相关文章

  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • nlohmann/json 框架中的未知断点

    一段时间以来 当我在启用断点的 Xcode 下运行我的应用程序时 我显然在名为 nlohmann basic json 的系统框架中遇到了一个未知断点 我可以毫无问题地继续执行 但这无论如何都很烦人 知道这个断点的原因是什么 或者更好的是
  • 使用 GDB 调试 Rust

    我知道调试 Rust这里有关于 Stack Overflow 的问题 我之前也在 Go 中使用过 GDB 然而 我遇到了一个问题 GDB 似乎无法找到调试符号 考虑这个复杂的程序main rs pub fn main println run
  • 将通配符包标识符转换为单个 ID

    我在应用程序商店中有一个使用通配符包标识符的应用程序 我想实现应用内购买 这需要非通配符ID 如何将现有应用的通配符 ID 转换为静态 ID 以进行应用内购买和推送通知 应用程序的捆绑标识符在更新之间必须始终保持相同 但 AppID 实际上
  • iPhone 应用程序在 iOS 4 上安装后无法启动,但设备重启后可以运行

    我有一个在 iOS 3 0 3 1 3 上运行良好的应用程序 然而 在测试 iOS 4 SDK 特别构建时 该应用程序的行为很奇怪 安装后 使用 Xcode iTunes 或 iPhone 配置实用程序 应用程序会执行以下两项操作之一 应用
  • 如何在 Swift Playground 中使用 Carthage 导入的框架

    我有一个快速项目 其中通过迦太基添加了一些框架 是否可以在项目内部的游乐场中使用这些框架以及如何使用它 因为 import Argo 不起作用 这在某个时候停止工作了 叹 我现在做的是 创建 macOS gt 命令行工具 创建一个购物车文件
  • Xcode 6.1“Xcode 调试器中内置的 Swift REPL 可以检查和操作正在运行的应用程序”不起作用

    对于 Xcode 6 1 更新点之一是 Xcode 调试器内置的 Swift REPL 可以检查和操作 你的跑步应用程序 我创建了空项目 在 viewDidLoad 中设置了一个断点 当应用程序在断点处停止时 我在 Xcode 控制台中输入
  • Xcode - 调试视图层次结构

    我正在尝试调试应用程序的视图层次结构 Xcode 窗口的左侧窗格中出现了一个紫色的小方块 请参见屏幕截图 知道这个问题可能是什么吗 好吧 我找到了这个问题的根源 这是一个约束问题
  • Android Studio 无法运行 Xcode 模拟器

    我正在尝试使用 Xcode iPhone 模拟器模拟我的 Flutter 应用程序 但收到此错误 在升级 Android Studio 和 Xcode 之前 它运行良好 Launching lib main dart on iPhone X
  • Xcode 注释自动完成(appledoc 风格)

    我发现记录界面特别痛苦 因为我需要自己输入所有内容 所以我想我一定不是唯一一个这样的人 并开始寻找一种方法来减轻我的痛苦 但没有找到多少 我的问题是 有没有快捷方式或方法可以让 Xcode 自动完成我的评论 例如 我非常希望输入 tab 它
  • Xcode 6 仪器冻结

    在 Xcode 6 Instruments 中分析我的 iOS 8 应用程序将运行该应用程序约 5 秒 然后冻结 此后探查器仍将运行 但应用程序已冻结且无法使用 发生在设备和模拟器上 无论我使用哪个分析器 计时器 泄漏等 从调试器或临时构建
  • 为什么在尝试编译此代码时会收到错误“错误:未知类型名称'虚拟'”?

    Code struct IRenderingEngine virtual void Initialize int width int height 0 virtual void Render const 0 virtual void Upd
  • 如何从 ContentView 外部显示 SwiftUI 警报?

    我正在构建 Swift 应用程序 并试图找出如何显示警报 我有一个单独的 swift 文件正在执行一些计算 并且在某些条件下我希望它向用户显示警报 基本上告诉他们出了问题 然而 我见过的大多数例子都要求警报在ContentView或以其他方
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • Open 方法仅使用完整路径打开文件 C++

    如果我写入完整路径 完整路径 roots txt 文件将打开 如果我只写文件名 roots txt 文件将无法打开 然而 roots txt 与 main cpp 位于同一文件夹中 我应该检查 XCode 上的任何设置吗 这是代码 stri
  • 使用未解析的标识符“FlurryAdInterstitial”

    我正在尝试整合Flurry Interstitial Ads使用cocoapods in Swift and Xcode 7 1 1 我正在关注开发人员雅虎网站上的此文档 https developer yahoo com flurry d

随机推荐

  • 如何在 IIS 6.0 上部署 WCF 服务?

    我完全陌生WCF和部署服务 我在 IIS 6 0 上设置服务时遇到问题 我需要部署我的确切步骤WCFIIS 6 0 上的服务 注意 我创建了一个WCF服务申请 那么 在 IIS 6 0 上部署 wcf 服务需要遵循哪些具体步骤 我相信你基本
  • 当我在 gridview 中进行排序时,会触发 Gridview RowCommand 事件

    我陷入了一些不正常的问题 当我在 gridview 中进行排序时 它会触发该网格的 RowCommand 事件而不是排序事件 下面是我的网格视图的 HTML 代码
  • Date_format 转换是在边界日期上添加 1 年

    当我使用 DATE FORMAT 表示 12 月 31 日的日期时 2018 年即将更改为 2019 年 有人可以帮忙说这是一个错误还是我遗漏了一些东西 import org apache spark sql functions spark
  • Google App Engine 适用于长时间运行但 CPU 较低的任务,还是长时间轮询?

    App Engine 非常适合快速处理请求 无需对数据库或缓存或第三方资源进行外部 API 调用 但我们发现引入任何类型的 运行时间较长 的组件或外部延迟 例如在 HTTP POST 中 在后台异步运行的操作 可能需要一两秒钟来处理一些更密
  • Facebook 评论插件 Angularjs

    在我的 AngularJS 应用程序中添加 facebook 评论插件时 我遇到了一个奇怪的错误 应用程序页面的简化结构是 div div div div 带有fb评论框的页面被加载到ng view中 包含fb评论框的页面结构如下 div
  • 如何在Python中使用socket创建通道

    我之前已经启动过Python几次 现在我正在创建一个套接字服务器 我已经让服务器与多个客户端一起使用多个线程 万岁 但我正在寻找我无法调用的功能 我什至不知道它是否存在 我想创建一种客户端通道可以发送不同类型的消息 一个例子 我创建一个通道
  • 使用 MVVM 在 SwiftUI 中呈现警报

    我正在尝试使用 SwiftUI 和 MVVM 架构构建一个应用程序 我希望我的视图在其 ViewModel 认为有必要时 例如 当它从模型中获得某种新结果时 显示警报 因此 假设每当虚拟机检测到新结果时 它就会设置其status因此 视图模
  • 使用 net.tcp://0.0.0.0:0/blah 的服务主机发现 WCF 宣布 net.tcp://0.0.0.0:0/blah

    我想要一个可发现的服务 它可以侦听所有接口并为每个接口发布发现公告 我希望最终能够使用 tcp 0 0 0 0 0 blah 作为服务端点在配置文件中进行配置 但是当我运行下面的代码时 它发出的公告使用 tcp 0 0 0 0 0 blah
  • Silverlight 与 IIS 10.0 上的 RIA 服务导致 404 错误

    尝试使用 WCF RIA 服务迁移现有的正在运行的 Silverlight 应用程序IIS 6 0 to IIS 10 0 on W视窗服务器 2016但应用程序失败返回404错误s 当我在服务器上安装 Visual Studio 并尝试运
  • 自动运行多个 vim 命令和击键

    我想在 vim 中自动运行多个命令 即通过键入 repl 命令是 ConqueTerm lein repl
  • AChartEngine 的 Android 问题:在边距中设置图像

    是否可以将图像设置为背景边距 我通常使用mRenderer setMarginsColor Color argb 0x00 0x01 0x01 0x01 但我想设置一个图像 您无法在 AChartEngine 中将图像设置为背景 因为它是开
  • 使用点“.” MVC4 路由中的角色

    我目前正在提供来自数据库表的图像 这些图像都是相同的文件类型 我想要字符点 路线 但尚未取得任何成功 据我了解 ISAPI 处理程序可能会导致与此相关的问题 我只是不确定如何添加和排除以允许 ASP NET 处理此路由 routes Map
  • jQuery ajax json 响应的长度未定义且数据不正确

    我试图获取一个在服务器端转换为 json 对象的字典对象 以及正确的内容类型标头 但由于某种原因 即使我可以访问部分数据 其他部分也不会显示up 和 jquery 中的 json 对象的长度等于 0 这是我的 jquery 调用 ajax
  • 什么是 __main__.py?

    是什么 main py文件 我应该在其中放入什么样的代码 什么时候应该有一个 通常 Python 程序是通过在命令行上命名 py 文件来运行的 python my program py 您还可以创建一个充满代码的目录或 zip 文件 并包含
  • Antlr 语法生成无效的 C# 代码

    我正在尝试使用 ANTLR 和 StringTemplate 库开发一个 C 代码生成器 AntlrWorks 可以生成 C 解析器和词法分析器文件 而不会报告任何错误 但是 c 解析器代码无效 无法在 Visual Studio 中编译
  • Celery 3.0.1 中的框架错误

    我最近从 2 3 0 升级到 Celery 3 0 1 所有任务都运行良好 很遗憾 我经常收到 帧错误 异常 我还运行主管来重新启动线程 但由于这些线程从未真正被杀死 主管无法知道 celery 需要重新启动 有没有人见过这个 2012 0
  • 在 AWS Code Pipeline 中使用 docker compose 时出错

    我正在使用 AWS Code Pipeline 部署我的 dockerized Django 应用程序 但遇到了一些 Docker 错误 error Service proxy failed to build toomanyrequests
  • 如果满足特定条件,则停止沿特定深度的 boost::depth_first_search

    我在用着BGL http boost org doc libs 1 45 0 libs graph doc table of contents html来存储我的 DAG 顶点有状态 考虑到其中一个顶点的状态发生变化 我想更新依赖顶点 我可
  • 用于格式化一系列单元格并根据 Google 电子表格中的日期插入特定文本的脚本

    我有一个规划器类型的 Google 电子表格 其中每天有 8 10 个用户添加数据 当我向单元格添加日期时 我希望对该日期之后同一行中的所有单元格进行格式化并添加类似 ENDED 的文本值 目前 我正在使用条件格式和 ArrayFormul
  • -[NSRangeException raise] 上的符号异常断点

    在 Xcode 中添加符号断点为您提供了一个示例模板 NSException raise 我想做同样的事情但是具体来说 on NSRangeException raise 原因是我想断点only关于特定数组边界异常 例如 Terminati