Objective-C - 使用 GDB 打印方法参数

2024-01-08

我正在努力使用 GDB 调试我的 Objective-C 程序。我有一个函数- (NSString *)reverse:(NSString *)someString我想调试它。

我设置断点的方法如下:

(gdb) break -[MyClass reverse:]

现在,当代码到达断点时,如何打印地址甚至更好的值self和方法参数?我做了一些谷歌搜索并找到了类似的建议po $rdx但我发现没有任何效果。

我该如何解决这个问题?


克拉克·考克斯(Clark Cox)写了我所找到的对此最好的解释。我一直参考这个页面,并在本地制作了一份副本,以防它消失。

http://www.clarkcox.com/blog/2009/02/04/inspecting-obj-c-parameters-in-gdb/ http://www.clarkcox.com/blog/2009/02/04/inspecting-obj-c-parameters-in-gdb/

x86_64 和非浮点参数的快速版本是:

first ObjC arg => $rdx
second ObjC arg => $rcx
third ObjC arg => $r8
fourth ObjC arg => $r9

请记住,传递给方法的前两件事(在 $rdi 和 $rsi 中)是self and _cmd。我这里没有数这些。

如果您传递浮点、结构或四个以上的参数,事情会变得更加复杂,您应该阅读中的调用约定AMD64 ABI http://www.x86-64.org/documentation/abi-0.99.pdf第 3.2.3 节。如果您正在处理 i386、PPC 或 ARM,请参阅 Clark 的帖子,其中很好地涵盖了常见情况下的这些情况。

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

Objective-C - 使用 GDB 打印方法参数 的相关文章

  • apple mach-o 链接器错误链接器命令失败,退出代码为 1(使用 -v 查看调用)

    2 https i stack imgur com pMAAm png我正在使用 Objective C 处理核心数据 出现错误 Apple Mach O Linker Error Linker command failed with ex
  • 如何更改表格单元格的详细信息披露按钮的颜色

    我想更改表格单元格的详细信息披露按钮的颜色 提前致谢 你必须创建一个自定义的UIButton并将其设置为单元格的附件视图 Your cellForRowAtIndexPath 看起来像下面这样 UITableViewCell tableVi
  • 从 iPhone 应用程序中启动指南针应用程序

    我正在尝试类似的方法从我的应用程序中启动指南针 NSString stringURL compass NSURL url NSURL URLWithString stringURL UIApplication sharedApplicati
  • 如何使我的 Objective-C 类符合 Swift 的“Equatable”协议?

    我有一个 Objective C 类 恰好是一个按钮 但这并不重要 在我的 混合语言 项目的另一部分 我有一个这些按钮的数组 我想获取索引使用按钮的find 方法 就像这样 func doSomethingWithThisButtonInd
  • 如何消除错误 服务无效 请检查您的设置并尝试

    我一直在努力工作 一切都很顺利 只是突然间 当我尝试构建我的项目时 我在 xCode 中收到以下错误 1 在构建时的警报框中 服务无效 请检查您的设置并重试 0xE8000022 只需重新启动您的 iPod 或 iPhone 即可
  • 如何隐藏标签栏并在屏幕上显示完整的表格视图?

    在我的应用程序的实现中 我有一个带有 5 个不同选项卡的选项卡栏控制器 通过以下代码隐藏标签栏后 void hideTabBar for UIView view in self tabController view subviews if
  • 获取 iOS 5 中最后一个重定向的 url?

    有人可以发布最简单的工作代码 当我 GET 请求一个 url 时 它可以获取最后一个重定向的 url nth 吗 我知道我需要使用异步请求 但我无法制定出解决问题的完整工作代码 我正在使用 ios5 因此我可以使用 ios5 中最新添加的异
  • iOS 应用程序和.NET 应用程序之间的通信?

    我有 2 个应用程序 一个是 iOS 应用程序 一个是 NET 应用程序 我希望我的 iOS 应用程序发送一条消息 调用 NET 应用程序的方法 将一些字符串发送到 NET 应用程序以保存到数据库 那么 我的 iOS 应用程序如何与 NET
  • UIWebView didFinishLoading 多次触发

    我有一些代码需要在 a 之后运行UIWebView完成加载文档 为此我设置了UIWebView的委托给我的控制器 并实现了webViewDidFinishLoading method 这会被多次调用 具体取决于要加载的页面类型 我不确定是否
  • 如何在 UICollectionView PerformBatchUpdates 块中排序移动、插入、删除和更新?

    In my UICollectionView 我使用一个简单的自定义对象数组来生成和显示单元格 有时数据会发生变化 我想一次性为所有变化添加动画效果 我选择通过跟踪第二个数组中的所有更改 比较两个数组并在一个数组内生成一组移动 插入 删除和
  • object_setClass()而不是分配isa指针的性能

    我注意到在 XCode 4 6 的最新更新中 我收到了关于以下几行的警告JSONKit m 具体来说 设置对象类的行 dictionary gt isa JKDictionaryClass 这些被标记为已弃用 并注明首选方法是使用objec
  • iOS8中如何在UIAlertController中添加UITableview?

    Till iOS7 in Custom view we can put tableview in alert as per below picture But in iOS8 UITableview is not working I can
  • 当我打开特定的 XIB 文件时,Xcode 崩溃

    I had a XIB文件一直运行良好 直到今天 当我尝试在 Xcode 中打开它时 沙滩球出现 1 分钟后 Xcode 崩溃 其他的XIBs工作得很好 另外 如果我只是在我的设备上构建并运行项目 它也可以工作 并且 XIB 在应用程序中工
  • 解析后 UITableView 委托和数据源在单独的类中

    我需要从一个单独的类设置 UITableView 委托和数据源 方法调用解析后数据准备就绪 但每次我的表都是空的 我正在使用 ARC 这是简化的代码 HomeViewController h import
  • iOS 新手。预期的表达错误?

    这看起来很不寻常 因为该方法与我的 showAnswer 方法完全相同 所以我想我应该在这里问 import QuizViewController h interface QuizViewController end implementat
  • Apple 推送通知徽章编号

    我开发了服务器端应用程序 以在收到新通知后将徽章编号维护为递增或递减 并在看到通知后删除它工作正常 但是显示徽章时存在一些问题 实际情况是 在设备上收到新通知后 我单击取消按钮 然后徽章编号正确显示 但之后我将打开应用程序并关闭应用程序徽章
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • Objective-C 声明的 @property 属性(非原子、复制、强、弱)

    有人可以向我详细解释一下我何时必须使用每个属性 nonatomic copy strong weak等等 对于声明的属性 并解释每个属性的作用是什么 某种例子也很好 我正在使用ARC 非原子的 Nonatomic https stackov

随机推荐

  • 如何通过 moment.js 获取最近的日期?

    日期列表 const datesToBeChecked 2020 07 06 2020 07 13 2020 07 20 检查日期 const dateToCheckFor 2020 07 07 如何使用 moment js 获取日期数组中
  • PHP 字符串转整数异常

    我在 HackerRank 上遇到一个问题 第 16 天 异常 字符串到整数 https www hackerrank com challenges 30 exceptions string to integer 简而言之任务是 读取一个字
  • Laravel 将 http 添加到 url

    Laravel 5 0 中是否有一个助手可以自动将 http 添加到没有它的 url 中 这与 codeigniter 类似prep url可以找到的here https ellislab com codeigniter user guid
  • 如何在 JavaScript 中动态创建 HTML 页面

    是否可以用 JavaScript 动态创建完整的 HTML 页面 基本上 我正在创建一个 HTML 编辑器在浏览器中我想要做的是将 HTML 代码放在屏幕顶部的文本区域中 并在屏幕底部的 HTML 页面预览中 问题是它不仅仅是小的 HTML
  • C# JSON 自定义序列化

    有没有一种方法 库允许我自定义类似于 GSON 自定义序列化器的 JSON 序列化 这是我想要得到的 这个对象 KeyValuePair 年龄 10 myAge 通常会被序列化为 我的年龄 关键 年龄 价值 10 虽然我希望它像这样序列化
  • 矢量与圆锥的交点

    我有一个向量A定义为 Ao t Ad 我还有一个带有顶点的圆锥体 圆锥尖 V 轴方向D 基半径R和身高H 如何找到向量和圆锥之间的交点 我正在使用 glm 进行数学计算 Here s a simple illustration 我没有处理光
  • 按频率对 Javascript 数组进行排序,然后过滤重复项

    获取 javascript 数组 按值的频率排序 然后过滤唯一值的优雅方法是什么 So apples oranges oranges oranges bananas bananas oranges becomes oranges banan
  • 关注有值的输入字段

    我专注于 jQuery 的输入字段 input text focus 输入字段中已有一些文本值 当我聚焦时 光标在最后一个字母之后闪烁 我如何将光标放在第一个字母之前 你可以使用我为你创建的这个小插件 修改自这个脚本 http blog v
  • 如何在CoordinatorLayout中的Viewpager下面获取Adview

    此刻AdView出现在里面ViewPager所以它会阻止应用程序中的内容 我怎样才能得到AdView出现在下面ViewPager而不是在里面 我试过把AdView in a RelativeLayout以下ViewPager但随后AdVie
  • 具有 CRUD 方法的类违反了单一职责原则?

    我试图理解单一责任原则 我有以下问题 单一职责原则 SRP 规定 永远不应该 班级变更的原因不止一个 通常我们的Resource Service和Repository类有 创建 读取 更新和删除方法 我们正在将每个班级更改为 修改任何这些操
  • BigQuery 下载或导出为 JSON 不考虑类型

    我在 BigQuery 中运行的查询 SELECT 5 as a 当我运行上述查询并选择时得到的架构另存为表格 当我将查询结果下载为 JSON 时得到的 JSONor当我导出表时 a 5 这不应该是 a 5 From 导出表数据 导出限制
  • C# Mysql - 在异步等待服务器的数据库查询上使用锁

    I have TcpListener类和我正在使用async await读写 对于该服务器 我创建了单个数据库实例 在其中准备了所有数据库查询 但对于不止一个TcpClient我不断遇到异常 类型异常MySql Data MySqlClie
  • 找不到模块“file-name.png”或其相应的类型声明 - Typescript React

    我正在尝试在我的打字稿反应项目中导入一个 png 如下所示 import logo from assets Logo svg 我收到了这个 TS 错误 Cannot find module assets Logo svg or its co
  • 为什么 Meteor 抱怨集合的插入方法已经定义了?

    谁能告诉我为什么下面的代码会抛出以下错误 Error A method named players insert is already defined 我是 Meteor 和 Coffeescript 的新手 所以我可能会忽略一些简单的东西
  • 在 Matlab 中使用单个校准图像校正镜头畸变

    我想纠正一系列图像的镜头畸变 所有图像都是用固定在适当位置的相机拍摄的 并且还可以使用同一设置的棋盘图像 检测到扭曲的棋盘图像的角点后 我想计算径向扭曲系数 以便我可以校正图像 类似于估计相机参数 http www mathworks co
  • 检测设备是否有 GPS

    如何检测GPS是否可用 iPod touch 和 iPad WiFi 版本没有 GPS 它们有基于 WiFi 的其他功能 无论如何 如何知道 GPS 是否可用 或者如何检测 iPod Touch 或 iPad Wifi 型号 这是 iOS
  • 无法从源 Pylance 解析导入“flask”(reportMissingModuleSource)

    当我写作时 from flask import Flask 一条黄线即将出现flask并说明无法从源 Pylance 解析导入 flask reportMissingModuleSource 另外 我也能够成功地使用这个包完成工作 但问题是
  • 如何在 R闪亮中显示多个.xpt文件并根据它们的列过滤它们?

    当我尝试上传多个 xpt 文件以在 R闪亮应用程序的主面板中显示表格时 它给我带来了以下问题 我也在寻找过滤选项 我想在上传多个文件时按列进行过滤 以便在每个数据框 数据表的主面板中显示适当的行 Error Warning Error in
  • ORM 和构造函数

    我正在研究 NET ORM 实现 并且有一个重要的紧迫问题 是否有任何 NET ORM 实现不需要数据库中每个字段的公共属性 当我看到这样的例子时this https web archive org web 20090831053827 h
  • Objective-C - 使用 GDB 打印方法参数

    我正在努力使用 GDB 调试我的 Objective C 程序 我有一个函数 NSString reverse NSString someString我想调试它 我设置断点的方法如下 gdb break MyClass reverse 现在