忽略com.apple.coremedia.networkbuffering中的异常 [英] Ignore exceptions in com.apple.coremedia.networkbuffering

查看:108
本文介绍了忽略com.apple.coremedia.networkbuffering中的异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在com.apple.coremedia.networkbuffering中引发异常,如

I'm getting exceptions thrown in com.apple.coremedia.networkbuffering as described in this question.

它们不会崩溃应用程序,也不会引起任何问题.但是它们使我的异常断点变得无用,因为它会一直触发.

They don't crash the app or seem to cause any problems. But they make my exception breakpoint useless because it triggers all the time.

我发现问题,介绍了一些过滤所有异常"断点的方法,但是运气不好.我在调试器中检查了NSThread,希望找到一些我可以用来构造要在断点上应用的条件的信息,但是该线程未命名.堆栈跟踪中有一些我可以使用的信息,但是我找不到一种很好的方法来应用它来防止触发断点.

I found these questions describing some ways to filter "All Exception" breakpoints but didn't have much luck. I examined the NSThread in the debugger hoping to find an some information I could use to construct a condition to apply on the breakpoint, but the thread isn't named. There's information in the stack trace that I might be able to use, but I couldn't find a good way to apply it to prevent the breakpoint from firing.

问题末尾包含调用堆栈.

Call stack is included at the end of the question.

如何防止我的所有例外"断点停止此例外?

How can I prevent my "All exceptions" breakpoint from stopping on this exception?

这是调用堆栈:

(lldb) po [NSThread callStackSymbols]
<_NSCallStackArray 0xdceefa0>(
0   ???                                 0x12e41edd 0x0 + 316939997,
1   AudioCodecs                         0x15aa7f95 _ZL15GetPropertyInfoPvmPmPh + 45,
2   AudioToolbox                        0x0435ae79 AudioCodecGetPropertyInfo + 89,
3   AudioToolbox                        0x04257d85 _ZN14CodecConverter15CheckInitializeEPKvm + 533,
4   AudioToolbox                        0x042579e5 _ZN14CodecConverterC2ERP20OpaqueAudioComponentP28OpaqueAudioComponentInstanceRK14StreamDescPairS7_bRK23AudioConverterPrimeInfo + 661,
5   AudioToolbox                        0x0425773c _ZN14CodecConverterC1ERP20OpaqueAudioComponentP28OpaqueAudioComponentInstanceRK14StreamDescPairS7_bRK23AudioConverterPrimeInfo + 60,
6   AudioToolbox                        0x0425c6d0 _ZN19CodecDecoderFactory24BuildCodecConverterChainERK14StreamDescPairRK18ChainBuildSettingsP19AudioConverterChainP19PCMConverterFactory + 240,
7   AudioToolbox                        0x042445dc _ZN17ConverterRegistry15CreateConverterERK14StreamDescPairPP19AudioConverterChainmPK21AudioClassDescription + 204,
8   AudioToolbox                        0x04235156 _AudioConverterNewInternal + 342,
9   AudioToolbox                        0x042832e1 _ZN16AudioQueueObject19ConverterConnection14BuildConverterEv + 1505,
10  AudioToolbox                        0x04282c72 _ZN16AudioQueueObject19ConverterConnectionC2ERS_Rl + 130,
11  AudioToolbox                        0x042848bc _ZN16AudioQueueObject16IONodeConnection27GetConverterConnection_InitERl + 60,
12  AudioToolbox                        0x042899bc _ZN16AudioQueueObject11SetPropertyEmR14CADeserializer + 2588,
13  AudioToolbox                        0x042b3bdb AQServer_SetProperty + 123,
14  AudioToolbox                        0x042be251 AudioQueueSetProperty + 369,
15  MediaToolbox                        0x0c665d8b subaq_createSubAudioQueue + 876,
16  MediaToolbox                        0x0c6655d1 FigAudioQueueCreate + 669,
17  MediaToolbox                        0x0c7012c3 FigAudioQueueRenderPipelineCreate + 658,
18  MediaToolbox                        0x0c68c3a3 fpfs_EnsureRenderChainForTrack + 2722,
19  MediaToolbox                        0x0c682c3f fpfs_ResolveAllWaitingTracks + 2372,
20  MediaToolbox                        0x0c67cd85 fpfs_PushSampleBuffer + 3941,
21  MediaToolbox                        0x0c64b993 _ZL32fim_MakePushSampleBufferCallbackP17OpaqueFigManifoldP14FigIcyManifoldiPFlS0_iPvjxP20opaqueCMSampleBufferES3_jxS5_ + 85,
22  MediaToolbox                        0x0c64b453 _ZL22AudioFileStreamPacketsPvmmPKvP28AudioStreamPacketDescription + 3263,
23  AudioToolbox                        0x042ac5de _ZN22AudioFileStreamWrapper15CallPacketsProcEmmPKvP28AudioStreamPacketDescriptionb + 142,
24  AudioToolbox                        0x042de8e1 _ZN15ADTSAudioStream15GeneratePacketsER27AudioFileStreamContinuation + 1873,
25  AudioToolbox                        0x042af1e5 _ZN22AudioFileStreamWrapper10ParseBytesEmPKvm + 229,
26  AudioToolbox                        0x042abfd8 AudioFileStreamParseBytes + 88,
27  MediaToolbox                        0x0c64a218 _ZL24FigIcyManifoldInjectDataP17OpaqueFigManifoldxjP19OpaqueCMBlockBuffer + 819,
28  MediaToolbox                        0x0c69dbc2 fpfs_BytePumpFn + 2813,
29  MediaToolbox                        0x0c648f18 fbp_SendDataCallback + 171,
30  MediaToolbox                        0x0c64884d FigICY_HTTPPumpFn + 2350,
31  MediaToolbox                        0x0c83f826 figHTTPRequestPerformReadCallback + 183,
32  MediaToolbox                        0x0c83f9cd figHttpRequestSendOutputBlockBuffer + 81,
33  MediaToolbox                        0x0c83f729 figHttpRequestAppendDataArrayToBlockBuffer + 485,
34  MediaToolbox                        0x0c83f09a figHttpRequestDidReceiveDataArrayCallback + 300,
35  CFNetwork                           0x015578ae ___ZN27URLConnectionClient_Classic29_delegate_didReceiveDataArrayEv_block_invoke + 157,
36  CFNetwork                           0x01556bac ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 104,
37  CFNetwork                           0x015a10ef ___ZNK17CoreSchedulingSet13_performAsyncEPKcU13block_pointerFvvE_block_invoke + 25,
38  CoreFoundation                      0x039f0d59 CFArrayApplyFunction + 57,
39  CFNetwork                           0x014c05af _ZN19RunloopBlockContext7performEv + 139,
40  CFNetwork                           0x015a16d2 _ZThn16_N19RunloopBlockContext24multiplexerClientPerformEv + 20,
41  CFNetwork                           0x014c03dd _ZN17MultiplexerSource7performEv + 299,
42  CFNetwork                           0x014c01f2 _ZN17MultiplexerSource8_performEPv + 76,
43  CoreFoundation                      0x039d883f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15,
44  CoreFoundation                      0x039d81cb __CFRunLoopDoSources0 + 235,
45  CoreFoundation                      0x039f529e __CFRunLoopRun + 910,
46  CoreFoundation                      0x039f4ac3 CFRunLoopRunSpecific + 467,
47  CoreFoundation                      0x039ffe61 CFRunLoopRun + 129,
48  CoreMedia                           0x024f6e9e FigThreadGlobalNetworkBufferingRunloop + 31,
49  CoreMedia                           0x024f9dbd figThreadMain + 284,
50  libsystem_pthread.dylib             0x04f825fb _pthread_body + 144,
51  libsystem_pthread.dylib             0x04f82485 _pthread_struct_init + 0,
52  libsystem_pthread.dylib             0x04f87cf2 thread_start + 34
)

推荐答案

通常,当您有一段代码时,例如,这可能会有所帮助.一个第3部分库,该库引发您要忽略的多个异常:

This may help in general when you have a block of code e.g. a 3rd part library that throws multiple exceptions that you want to ignore:

设置两个断点,在您要忽略的异常抛出代码块之前设置一个,在断点之后设置一个. 运行程序,直到它在异常处停止,然后在调试器控制台中键入"breakpoint list",并找到所有异常"断点的编号,它应如下所示:

Set two breakpoints, one before and one after the exception throwing block of code you want to ignore. Run the program, until it stops at an exception, and type 'breakpoint list' into the debugger console, and find the number of the 'all exceptions' break point, it should look like this:

2:名称= {'objc_exception_throw','__cxa_throw'},位置= 2选项:禁用2.1:其中= libobjc.A.dylibobjc_exception_throw,地址= 0x00007fff8f8da6b3,未解决,命中计数= 0 2.2:where = libc ++ abi.dylib__cxa_throw,地址= 0x00007fff8d19fab7,未解析,命中计数= 0

2: names = {'objc_exception_throw', '__cxa_throw'}, locations = 2 Options: disabled 2.1: where = libobjc.A.dylibobjc_exception_throw, address = 0x00007fff8f8da6b3, unresolved, hit count = 0 2.2: where = libc++abi.dylib__cxa_throw, address = 0x00007fff8d19fab7, unresolved, hit count = 0

这意味着它是断点2.现在在xcode中,编辑第一个断点(在引发异常的代码之前),然后将操作更改为"debugger command",然后键入"breakpoint disable 2"(并设置为"automatic继续". ."复选框).

This means it is breakpoint 2. Now in xcode, edit the first breakpoint (before the exception throwing code) and change the action to 'debugger command' and type in 'breakpoint disable 2' (and set 'automatically continue...' checkbox ).

对违规行之后的断点执行相同的操作,并使用命令'breakpoint enable 2'.

Do the same for the break point after the offending line and have the command 'breakpoint enable 2'.

所有断点异常现在将打开和关闭,因此仅在需要iT时才激活

The all breakpoints exception will now turn on and off so it's only active when you need iT

这篇关于忽略com.apple.coremedia.networkbuffering中的异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆