iphone - XCode/Objective C 基于调用者的条件断点

标签 iphone objective-c ios nslog

好的,我需要设置一个断点,该断点仅在特定对象和/或选择器调用(或未调用)方法时才“命中”

我能想到的最简单的方法是,如果有一些编译器宏(如 _cmd)展开堆栈并返回当前方法的直接调用者的 ID 和选择器。

例如,假设宏是 _cmd_caller_id 和 _cmd_caller_sel) -

if ( (_cmd_caller_id == self) && (_cmd_caller_sel != @selector(some_method:signature:) ) {
   NSLog(@"called by %@ - hitting breakpoint",NSStringFromSelector(_cmd_caller_sel));
}

(你会在包含 NSLog(...); 的行上放置一个断点);

原因是我有一个被多次调用的方法,我需要能够设置比我上面描述的更复杂的条件集来设置陷阱以确定哪个方法正在调用有问题的方法,并且什么时候。

最佳答案

在调用站点设置断点,并在断点上设置条件(例如 self == whatever)

关于iphone - XCode/Objective C 基于调用者的条件断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775749/

相关文章:

iphone - 崩溃呈现模态视图 Controller

iphone - iPhone 上的 98kHz 音频文件

iphone - 使用更新的配置文件重建 IPA 文件

iphone - 正在引用的 SQLite 空数据库

ios - Xcode 5-检查用户是否具有Internet连接-检测到错误的NSStringEncoding值0x0000

ios - 如何设置提醒的优先级-Objective-C

iphone - CABasicAnimation 在动画完成后不更改其位置属性

ios - 带有 NSBlockOperation 和队列的 NSURLSession

objective-c - 如何将 RGB 整数转换为相应的 RGB 元组 (R,G,B)?

ios - 我正在学习 iOS 中的 "Audio File Stream Services Reference"