- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图弄清楚在接下来的反汇编中调用了什么方法,但我不知道发生了什么。我知道对于 objc_msgsend,第一个参数是对象指针,第二个是选择器(所以 r0 和 r1)。但我无法弄清楚这一点。这里只是配置 r1 的调用之前的部分:
00042e48 f64731bc movw r1, 0x7bbc<br/>
根据我对此的理解,前两行会使 r1 等于 1f007bbc 但我能从那里做什么呢?编辑:此外,添加 r1 和 pc 有什么作用?那之后的行是做什么的?我试过“otool -o SpringBoard”,但没有给我选择器(不知道它是什么,但它不是我要找的)
00042e4c f2c0011f movt r1, 0x1f<br/>
00042e50 4479 add r1, pc<br/>
00042e52 6809 ldr r1, [r1, #0]<br/>
00042e54 f1c2e84a blx 0x204eec @ symbol stub for: _objc_msgSend<br/>
编辑 2:Actaully,-o 确实给了我所有的方法(我从标题中获得了大量随机方法并在终端窗口中搜索它们,它们就在那里)。然而,搜索“1f007bbc”没有返回任何结果。我猜对了吗?
最佳答案
如果您有权访问调试器,您应该能够p (char*) 1f007bbc
并且它会打印选择器名称。
选择器通常是不变的,因此,您也应该能够通过拆开 mach-o 从二进制文件中提取它。
关于iphone - iPhone反汇编中的objc_msgsend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461029/
我需要理清思路才能理解 objc_msgSend()。请慷慨地提供详细答案。 :) 这是我对 Apple Doc 的理解。 When a message is sent to an object, t
假设我在运行时得到一个对象和它的选择器之一,我打算安全地调用它,所以我定义了 #define objc_msgsend_va ((void (*)(id, SEL, ...))objc_msgsend
当我尝试在模拟器(3.1.3,Xcode 3.1.4)上启动我的应用程序时,它显示 objc_msgSend 并且应用程序没有启动。只有当我 alloc NSMUtable Array 时才会发生这种
我在我的应用程序中收到了“objc_msgSend()” fatal error 消息,这要感谢 Hamster Emporium我可以弄清楚发生了什么。 现在我找到了“问题”和“解决方案”,但我不明
我的 iOS 应用程序有一些来自 bugsense 的崩溃报告,但我无法重现,因此无法调试。它一天发生 200 多次,所以我想这很严重。 我读过一些关于 NSZombie 的内容,但我无法重现崩溃,所
当我在应用程序中随机单击按钮时,它会变成这样,没有任何错误或任何异常请给我建议以及如何克服此类错误 提前致谢 最佳答案 为代码中的所有异常设置断点,我们无法使用该信息做任何事情。 如果这没有帮助,只需
在我的项目中,我在右上角添加了一个关闭按钮,如下所示: int closeBtnOffset = 10; UIImage* closeBtnImg = [UIImage imageNamed:@"po
我正在使用 dtrace 打印代码中的所有 objc_msgSend。到目前为止,我可以看到选择器的名称,但无法获得正确的类名。 这是我的 dtrace 脚本: #!/usr/sbin/dtrace
我正在编写一个 objc 桥,我发现了一种使用 objc_msgSend 调用 objc 方法的非常有效的方法。 基本上,代码能够生成一个宏,该宏传递给 objc_msgSend 从 NSArray
我一直在分析我的回合制游戏应用程序,我遇到了一个有趣的(也许)问题。根据下图,objc_msgSend 似乎占用了我的应用程序将近一分钟的运行时间。这是什么,它是否是某些代码编写不当的标志?谢谢! 最
当我有返回一些联合的方法时,我有一个与 objc_msgSend 运行时调用相关的问题。 我正在通过 libffi 调用 objc_msgSend 函数,如果我有小于 16B 的联合,一切都很好,但如
我正在测试我的应用程序,非常努力地插入它,但我让它崩溃了(黑屏,图像无法保存,返回到 springboard)。但是,我没有在控制台中记录任何崩溃报告。当我使用探查器进行测试时,我得到的只是一条消息,
我已经为 iphone 启动了一个基于 2d 图 block 的游戏,我将直接跳转到我的类(class)和问题。我现在总共有 2 个类 Tile 、 Table 和 Base 主类瓦 `@interf
我正在尝试使用 objc_msgSend动态调用某个方法的方法。 假设我想从 A 类调用 B 类中的某个方法,而 B 类中有两个方法,例如: - (void) instanceTestWithStr1
我很惊讶在 stackoverflow 上搜索 j__objc_msgSend 返回 0 个结果,Google 似乎也不太了解它。根据它的 disassembly , j__objc_msgSend
我正在尝试追踪一个错误,我有一个看起来像这样的崩溃日志: 0 libobjc.A.dylib objc_msgSend + 15 1 CoreFoundation __CFRUN
我在 Crashlytics 中遇到如下所示的崩溃。 我无法理解这是应用程序中的什么形式。不幸的是,我自己从未能够生成此崩溃,但它正在发生。 只有一个对应用名称的引用,没有任何内容可以表明它来自应用中
我正在尝试确定 Apple 在 NSWorkspace 上公开的方法在内部如何工作,以便尝试解决该方法的不幸副作用(它写入磁盘,每次调用它)。我可以将 lldb 附加到我的可执行文件并在调用该方法时设
我最近遇到了一个问题,在 Google 上没有可用的解决方案。我想将应用程序的 Objective-C 消息记录到控制台或文件中。我没有编写应用程序,所以我没有源代码来重新编译并包含日志记录。我有一个
当 NSAutoreleasePool 耗尽时,我发生了崩溃。据推测,该池正试图释放一个已被另一段代码过早释放的对象。我遇到的崩溃发生在 objc_msgSend 中,因为它正在尝试向不再存在的对象发
我是一名优秀的程序员,十分优秀!