查看NSAutoreleasePool 中 autorelease对象的状况,可以使用运行时系统中的函数(lldb)po _objc_autoreleasePoolPrint();。
测试的源代码如下:
 
执行断点1处的代码,日志如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 
 | 2020-01-27 19:22:37.241288+0800 NSAutoReleasePool测试[7028:191376] 执行断点1处的代码。(lldb) po _objc_autoreleasePoolPrint();
 objc[7028]: ##############
 objc[7028]: AUTORELEASE POOLS for thread 0x11a0615c0
 objc[7028]: 86 releases pending.
 objc[7028]: [0x7ff577009000]  ................  PAGE  (hot) (cold)
 objc[7028]: [0x7ff577009038]  ################  POOL 0x7ff577009038
 objc[7028]: [0x7ff577009040]    0x60800002d3a0  __NSCFString
 objc[7028]: [0x7ff577009048]  ################  POOL 0x7ff577009048
 objc[7028]: [0x7ff577009050]  ################  POOL 0x7ff577009050
 objc[7028]: [0x7ff577009058]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009060]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009068]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009070]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009078]    0x604000028d20  __NSArrayI
 objc[7028]: [0x7ff577009080]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009088]    0x604000071c40  __NSCFDictionary
 objc[7028]: [0x7ff577009090]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009098]    0x604000049e40  __NSArrayM
 objc[7028]: [0x7ff5770090a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770090a8]    0x7ff576604080  UIStatusBarWindow
 objc[7028]: [0x7ff5770090b0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090b8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770090c0]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090c8]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090d0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090d8]    0x604000048970  __NSArrayM
 objc[7028]: [0x7ff5770090e0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090e8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090f0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770090f8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009100]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009108]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009110]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009118]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009120]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009128]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009130]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009138]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009140]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009148]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009150]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009158]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009160]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009168]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009170]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009178]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009180]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009188]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009190]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009198]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091a0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091a8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091b0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091b8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091d0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091d8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770091f0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091f8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009200]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009208]    0x7ff578800540  UITouch
 objc[7028]: [0x7ff577009210]    0x604000049420  __NSArrayM
 objc[7028]: [0x7ff577009218]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009220]    0x60400008de80  __NSMallocBlock__
 objc[7028]: [0x7ff577009228]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009230]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009238]    0x60800010ee80  NSXPCConnection
 objc[7028]: [0x7ff577009240]    0x60400008de30  __NSXPCInterfaceProxy__UIKeyboardArbitration
 objc[7028]: [0x7ff577009248]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009250]       0x10ecc4a58  __NSGlobalBlock__
 objc[7028]: [0x7ff577009258]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009260]    0x60800002ef60  __NSArrayI
 objc[7028]: [0x7ff577009268]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009270]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009278]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009280]    0x6040000130f0  __NSDate
 objc[7028]: [0x7ff577009288]    0x604000360cc0  __NSCFTimer
 objc[7028]: [0x7ff577009290]    0x604000029440  __NSArrayI
 objc[7028]: [0x7ff577009298]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b8]    0x60400002abc0  __NSArrayI
 objc[7028]: [0x7ff5770092c0]    0x60400002aaa0  __NSArrayI
 objc[7028]: [0x7ff5770092c8]    0x6040000132d0  __NSSingleObjectArrayI
 objc[7028]: [0x7ff5770092d0]    0x60800010edf0  UITouchesEvent
 objc[7028]: [0x7ff5770092d8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092e0]    0x604000026f00  AppDelegate
 objc[7028]: ##############
 0x75269231ba3900d2
 
 | 
执行断点2处的代码,日志如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 
 | 2020-01-27 19:24:29.654753+0800 NSAutoReleasePool测试[7028:191376] 执行断点2处的代码。2020-01-27 19:24:29.654806+0800 NSAutoReleasePool测试[7028:191487] XPC connection interrupted
 (lldb) po _objc_autoreleasePoolPrint();
 objc[7028]: ##############
 objc[7028]: AUTORELEASE POOLS for thread 0x11a0615c0
 objc[7028]: 87 releases pending.
 objc[7028]: [0x7ff577009000]  ................  PAGE  (hot) (cold)
 objc[7028]: [0x7ff577009038]  ################  POOL 0x7ff577009038
 objc[7028]: [0x7ff577009040]    0x60800002d3a0  __NSCFString
 objc[7028]: [0x7ff577009048]  ################  POOL 0x7ff577009048
 objc[7028]: [0x7ff577009050]  ################  POOL 0x7ff577009050
 objc[7028]: [0x7ff577009058]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009060]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009068]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009070]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009078]    0x604000028d20  __NSArrayI
 objc[7028]: [0x7ff577009080]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009088]    0x604000071c40  __NSCFDictionary
 objc[7028]: [0x7ff577009090]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009098]    0x604000049e40  __NSArrayM
 objc[7028]: [0x7ff5770090a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770090a8]    0x7ff576604080  UIStatusBarWindow
 objc[7028]: [0x7ff5770090b0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090b8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770090c0]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090c8]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090d0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090d8]    0x604000048970  __NSArrayM
 objc[7028]: [0x7ff5770090e0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090e8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090f0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770090f8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009100]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009108]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009110]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009118]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009120]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009128]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009130]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009138]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009140]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009148]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009150]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009158]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009160]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009168]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009170]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009178]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009180]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009188]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009190]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009198]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091a0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091a8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091b0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091b8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091d0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091d8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770091f0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091f8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009200]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009208]    0x7ff578800540  UITouch
 objc[7028]: [0x7ff577009210]    0x604000049420  __NSArrayM
 objc[7028]: [0x7ff577009218]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009220]    0x60400008de80  __NSMallocBlock__
 objc[7028]: [0x7ff577009228]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009230]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009238]    0x60800010ee80  NSXPCConnection
 objc[7028]: [0x7ff577009240]    0x60400008de30  __NSXPCInterfaceProxy__UIKeyboardArbitration
 objc[7028]: [0x7ff577009248]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009250]       0x10ecc4a58  __NSGlobalBlock__
 objc[7028]: [0x7ff577009258]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009260]    0x60800002ef60  __NSArrayI
 objc[7028]: [0x7ff577009268]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009270]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009278]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009280]    0x6040000130f0  __NSDate
 objc[7028]: [0x7ff577009288]    0x604000360cc0  __NSCFTimer
 objc[7028]: [0x7ff577009290]    0x604000029440  __NSArrayI
 objc[7028]: [0x7ff577009298]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b8]    0x60400002abc0  __NSArrayI
 objc[7028]: [0x7ff5770092c0]    0x60400002aaa0  __NSArrayI
 objc[7028]: [0x7ff5770092c8]    0x6040000132d0  __NSSingleObjectArrayI
 objc[7028]: [0x7ff5770092d0]    0x60800010edf0  UITouchesEvent
 objc[7028]: [0x7ff5770092d8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092e0]    0x604000026f00  AppDelegate
 objc[7028]: [0x7ff5770092e8]  ################  POOL 0x7ff5770092e8
 objc[7028]: ##############
 0x75269231ba3900d2
 
 | 
执行断点3处的代码,日志如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 
 | 2020-01-27 19:27:07.529438+0800 NSAutoReleasePool测试[7028:191376] 执行断点3处的代码。(lldb) po _objc_autoreleasePoolPrint();
 objc[7028]: ##############
 objc[7028]: AUTORELEASE POOLS for thread 0x11a0615c0
 objc[7028]: 88 releases pending.
 objc[7028]: [0x7ff577009000]  ................  PAGE  (hot) (cold)
 objc[7028]: [0x7ff577009038]  ################  POOL 0x7ff577009038
 objc[7028]: [0x7ff577009040]    0x60800002d3a0  __NSCFString
 objc[7028]: [0x7ff577009048]  ################  POOL 0x7ff577009048
 objc[7028]: [0x7ff577009050]  ################  POOL 0x7ff577009050
 objc[7028]: [0x7ff577009058]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009060]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009068]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009070]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009078]    0x604000028d20  __NSArrayI
 objc[7028]: [0x7ff577009080]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009088]    0x604000071c40  __NSCFDictionary
 objc[7028]: [0x7ff577009090]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009098]    0x604000049e40  __NSArrayM
 objc[7028]: [0x7ff5770090a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770090a8]    0x7ff576604080  UIStatusBarWindow
 objc[7028]: [0x7ff5770090b0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090b8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770090c0]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090c8]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090d0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090d8]    0x604000048970  __NSArrayM
 objc[7028]: [0x7ff5770090e0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090e8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090f0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770090f8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009100]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009108]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009110]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009118]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009120]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009128]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009130]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009138]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009140]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009148]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009150]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009158]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009160]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009168]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009170]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009178]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009180]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009188]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009190]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009198]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091a0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091a8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091b0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091b8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091d0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091d8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770091f0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091f8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009200]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009208]    0x7ff578800540  UITouch
 objc[7028]: [0x7ff577009210]    0x604000049420  __NSArrayM
 objc[7028]: [0x7ff577009218]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009220]    0x60400008de80  __NSMallocBlock__
 objc[7028]: [0x7ff577009228]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009230]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009238]    0x60800010ee80  NSXPCConnection
 objc[7028]: [0x7ff577009240]    0x60400008de30  __NSXPCInterfaceProxy__UIKeyboardArbitration
 objc[7028]: [0x7ff577009248]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009250]       0x10ecc4a58  __NSGlobalBlock__
 objc[7028]: [0x7ff577009258]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009260]    0x60800002ef60  __NSArrayI
 objc[7028]: [0x7ff577009268]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009270]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009278]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009280]    0x6040000130f0  __NSDate
 objc[7028]: [0x7ff577009288]    0x604000360cc0  __NSCFTimer
 objc[7028]: [0x7ff577009290]    0x604000029440  __NSArrayI
 objc[7028]: [0x7ff577009298]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b8]    0x60400002abc0  __NSArrayI
 objc[7028]: [0x7ff5770092c0]    0x60400002aaa0  __NSArrayI
 objc[7028]: [0x7ff5770092c8]    0x6040000132d0  __NSSingleObjectArrayI
 objc[7028]: [0x7ff5770092d0]    0x60800010edf0  UITouchesEvent
 objc[7028]: [0x7ff5770092d8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092e0]    0x604000026f00  AppDelegate
 objc[7028]: [0x7ff5770092e8]  ################  POOL 0x7ff5770092e8
 objc[7028]: [0x7ff5770092f0]    0x60400004a770  __NSArrayI
 objc[7028]: ##############
 0x75269231ba3900d2
 
 | 
执行断点4处的代码,日志如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 
 | 2020-01-27 19:28:45.777438+0800 NSAutoReleasePool测试[7028:191376] 执行断点4处的代码。(lldb) po _objc_autoreleasePoolPrint();
 objc[7028]: ##############
 objc[7028]: AUTORELEASE POOLS for thread 0x11a0615c0
 objc[7028]: 86 releases pending.
 objc[7028]: [0x7ff577009000]  ................  PAGE  (hot) (cold)
 objc[7028]: [0x7ff577009038]  ################  POOL 0x7ff577009038
 objc[7028]: [0x7ff577009040]    0x60800002d3a0  __NSCFString
 objc[7028]: [0x7ff577009048]  ################  POOL 0x7ff577009048
 objc[7028]: [0x7ff577009050]  ################  POOL 0x7ff577009050
 objc[7028]: [0x7ff577009058]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009060]    0x60800023fca0  CAContextImpl
 objc[7028]: [0x7ff577009068]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009070]    0x604000027500  CAContextImpl
 objc[7028]: [0x7ff577009078]    0x604000028d20  __NSArrayI
 objc[7028]: [0x7ff577009080]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009088]    0x604000071c40  __NSCFDictionary
 objc[7028]: [0x7ff577009090]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009098]    0x604000049e40  __NSArrayM
 objc[7028]: [0x7ff5770090a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770090a8]    0x7ff576604080  UIStatusBarWindow
 objc[7028]: [0x7ff5770090b0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090b8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770090c0]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090c8]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff5770090d0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090d8]    0x604000048970  __NSArrayM
 objc[7028]: [0x7ff5770090e0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090e8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770090f0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770090f8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009100]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009108]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009110]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009118]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009120]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009128]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009130]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009138]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009140]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009148]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009150]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009158]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009160]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009168]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009170]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009178]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff577009180]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009188]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009190]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009198]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091a0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091a8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091b0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091b8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091c8]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091d0]    0x60c0000f7e00  _UIApplicationCanvas
 objc[7028]: [0x7ff5770091d8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e0]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff5770091e8]    0x604000046990  __NSArrayM
 objc[7028]: [0x7ff5770091f0]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff5770091f8]    0x60c0000cbb40  UIApplicationSceneSettings
 objc[7028]: [0x7ff577009200]    0x7ff578801260  UIScreen
 objc[7028]: [0x7ff577009208]    0x7ff578800540  UITouch
 objc[7028]: [0x7ff577009210]    0x604000049420  __NSArrayM
 objc[7028]: [0x7ff577009218]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009220]    0x60400008de80  __NSMallocBlock__
 objc[7028]: [0x7ff577009228]    0x604000013130  __NSSingleObjectSetI
 objc[7028]: [0x7ff577009230]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009238]    0x60800010ee80  NSXPCConnection
 objc[7028]: [0x7ff577009240]    0x60400008de30  __NSXPCInterfaceProxy__UIKeyboardArbitration
 objc[7028]: [0x7ff577009248]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009250]       0x10ecc4a58  __NSGlobalBlock__
 objc[7028]: [0x7ff577009258]    0x60800002ea80  NSXPCInterface
 objc[7028]: [0x7ff577009260]    0x60800002ef60  __NSArrayI
 objc[7028]: [0x7ff577009268]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009270]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff577009278]    0x7ff57880aeb0  UIView
 objc[7028]: [0x7ff577009280]    0x6040000130f0  __NSDate
 objc[7028]: [0x7ff577009288]    0x604000360cc0  __NSCFTimer
 objc[7028]: [0x7ff577009290]    0x604000029440  __NSArrayI
 objc[7028]: [0x7ff577009298]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092a8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b0]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092b8]    0x60400002abc0  __NSArrayI
 objc[7028]: [0x7ff5770092c0]    0x60400002aaa0  __NSArrayI
 objc[7028]: [0x7ff5770092c8]    0x6040000132d0  __NSSingleObjectArrayI
 objc[7028]: [0x7ff5770092d0]    0x60800010edf0  UITouchesEvent
 objc[7028]: [0x7ff5770092d8]    0x7ff578808a50  UIWindow
 objc[7028]: [0x7ff5770092e0]    0x604000026f00  AppDelegate
 objc[7028]: ##############
 0x75269231ba3900d2
 
 | 
由以上日志可见,断点1处时objc[7028]: 86 releases pending.,有86个autorelease对象等待释放;然后新建一个autoreleasepool,到断点2处时objc[7028]: 87 releases pending.,有87个autorelease对象等待释放;然后创建一个NSArray对象并注册到autoreleasepool,到断点3处时objc[7028]: 88 releases pending.,有88个对象等待释放;最后出autoreleasepool的范围,新建的NSArray对象和autoreleasepool对象都被释放了,又恢复到最初时候objc[7028]: 86 releases pending.,仍然只有86个对象等待释放。整个的过程可以判断出autoreleasepool的内存管理方式。注意在autoreleasepool中包裹的部分,只有通过类方法,并且不是 alloc/init/copy/mutableCopy 获取到的对象才会注册到当前的autoreleasepool中,才可以使用以上方式查找内存的详细情况。
如果autorelease NSAutoreleasePool对象会如何?
| 12
 
 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];[pool autorelease];
 
 | 
回答:发生异常,通常在使用Objective-C,也就是Foundation框架时,无论调用哪一个对象的 autorelease 实例方法,实现上调用的都是 NSObject 类的 autorelease 实例方法。但是对于 NSAutoreleasePool类,autorelease 实例方法已被该类重载,因此运行时就会报错。
参考
《iOS与OS X多线程和内存管理》