TRAPS- A Time Dependent Resource Allocation Language
- 格式:pdf
- 大小:392.98 KB
- 文档页数:70
2020年5G考试题库288题[含答案]一、多选题1.5GNR中SSB组成(ABC)A)PSSB)SSSC)PBCHD)CSI-RS2.NR中上行HARQ采用下列哪种方式(AC)A)异步B)同步C)自适应D)非自适应3.BWPGenericparameter包括(ABC)A)locationAndBandwidthB)subcarrierSpacingC)cyclicPrefixD)bwp-Id4.下列对于SUL描述正确的是(AC)A)为补充上行覆盖划分的低频band,仅用与上行传输;B)当DLRSRP高于设定阈值时,在SUL上发起随机接入;C)支持PUCCH和PUSCH分别在SUL和NUL上发送;D)R15支持PUSCH同时在normalUL和SUL上传输;5.在NR下,满足如下哪几个条件之后,UE才会验证接收到的PDCCH是否用于SPS的激活和释放(BC)A)PDCCH的CRC校验位使用SPSC-RNTI进行加扰B)PDCCH的CRC校验位使用CS-RNTI进行加扰C)NDI域为0D)NDI域为16.以下说法正确的是:(AB)A)对于NR测量对象中配置的黑列表中的小区,UE不需要进行事件评估和测量B)NR测量中即使同一个频率即使子载波间隔不同,也需要配置两个不同的MOC)NR测量中测量事件的评估是以beam信号质量进行评估的D)NR测量中只在异频测量中需要gap,同频测量不需要gap 7.F)终端直连8.E)新型多载波9.NR测量中测量上报的quantity可以为(ABD)A)RSRPB)RSRQC)RSSID)SINR10.NR测量根据RS接收信号的类型可以分为:(AC)A)基于SSB的测量B)基于CSI的测量C)基于CSI-RS的测量D)基于PSS的测量11.BWP切换有哪些方式(BC)A)TCIB)DCIC)TimerD)RMSI12.PUSCH支持的波形包括()A)DFT-S-OFDMB)CP-OFDMC)DFT-OFDMD)D.S-OFDM答案:ABD13.NR下,RNA的组成方式有下面哪几种选择(AB)A)ListofcellsB)ListofRANareasC)ListofTAsD)ListofPLMN14.5G中PUSCH支持的波形包括(AB)A)DFT-S-OFDMB)CP-OFDMC)DFT-OFDMD)D.S-OFDM15.5G中PDSCH调制方式是(ABCD)A)QPSKB)16QAMC)64QAMD)256QAM16.5G中PUSCH调制方式是(ABCD)A)QPSKB)16QAMC)64QAMD)256QAM17.E)CSIreferencesignals18.下面属于5GNR下行链路referencesignal的是(ABCDE)A)DemodulationreferencesignalsforPDSCHB)Phase-trackingreferencesignalsforPDSCHC)DemodulationreferencesignalsforPDCCHD)DemodulationreferencesignalsforPBCH19.下面属于5GNR上行链路referencesignal的是(ABCD)A)DemodulationreferencesignalforPUSCHB)Phase-trackingreferencesignalsforPUSCHC)DemodulationreferencesignalforPUCCHD)Soundingreferencesignal20.E)240KHz21.5GNR子载波间隔是(ABCDE)A)15KHzB)30KHzC)60KHzD)120KHz22.5GNR中有哪几种Raster(ABC)A)GlobalRasterB)ChannelRasterC)SSRaster23.从一个SS/PBCHblock,UE至少可以获取如下哪些信息()A)OFDMsymbolindexB)slotindexinaradioframeC)radioframenumberD)PeriodicityofSSburstset答案:AB24.NR测量中测量上报的quantity可以为:()A)RSRPB)RSRQC)RSSID)SINR答案:ABD25.下面属于5G频段的是(ABC)A)3300-3400MHzB)3400-3600MHzC)4800-5000MHzD)1880-1900MHz26.5GNR中ΔFGlobal可以是()A)5kHzB)15kHzC)30kHzD)60Khz答案:ABD27.NR测量根据RS接收信号的类型可以分为:()A)基于SSB的测量B)基于CSI的测量C)基于CSI-RS的测量D)基于PSS的测量答案:AC28.MCGfailure后,下面正确的是()A)安全模式已建立情况下,启动重建流程;B)安全模式已建立情况下,回IDLE;C)安全模式未建立情况下,启动重建流程;D)安全模式未建立情况下,回IDLE;答案:AD29.MCGfailure的触发原因有哪几种.()A)uponT310expiryB)uponT312expiryC)uponrandomaccessproblemindicationfromMCGMACwhileneitherT300,T301,T304norT311isru nningD)uponindicationfromMCGRLCthatthemaximumnumberofretransmissionshasbeenreachedforanS RBorDRB答案:ABCD30.BWP切换有哪些方式()A)TCIB)DCIC)TimerD)RMSI答案:BC31.下面关于BWP的描述正确的是()A)BWP可以支持更低的UE带宽能力B)BWP可以支持不同的numerologyC)BWP的灵活调度可以大大降低功耗D)在某一个时刻,最多只能有一个激活的DLBWP和ULBWP答案:ABCD32.下面哪些RB可以配置不同的PDCPVersion()A)SRB1B)SRB2C)MNterminatedMCGBearerD)SNterminatedMCGBearer答案:ABC33.EN-DC下哪些SRB支持被配置成SplitSRB()A)SRB0B)SRB1C)SRB2D)SRB3答案:BC34.EN-DC下可以建立哪些SRB()A)SRB0B)SRB1C)SRB2D)SRB3答案:ABCD35.对于NRRNA概念,下面哪项是错误的()NGRNA可以提供不同的RNA定义给不同的UEs;NGRNA可以同时提供不同的RNA定义给同一个UE;UE需要支持listofcells和listofRANareas2种RNA配置;UE不需要2种RNA配置listofcells和listofRANareas都支持; 答案:BD36.NR下,RNA的组成方式有下面哪几种选择()A)Listofcells;B)ListofRANareas;C)ListofTAs;D)ListofPLMN。
LOW-FREQUENCY ACTIVE TOWED SONAR (LFATS)LFATS is a full-feature, long-range,low-frequency variable depth sonarDeveloped for active sonar operation against modern dieselelectric submarines, LFATS has demonstrated consistent detection performance in shallow and deep water. LFATS also provides a passive mode and includes a full set of passive tools and features.COMPACT SIZELFATS is a small, lightweight, air-transportable, ruggedized system designed specifically for easy installation on small vessels. CONFIGURABLELFATS can operate in a stand-alone configuration or be easily integrated into the ship’s combat system.TACTICAL BISTATIC AND MULTISTATIC CAPABILITYA robust infrastructure permits interoperability with the HELRAS helicopter dipping sonar and all key sonobuoys.HIGHLY MANEUVERABLEOwn-ship noise reduction processing algorithms, coupled with compact twin line receivers, enable short-scope towing for efficient maneuvering, fast deployment and unencumbered operation in shallow water.COMPACT WINCH AND HANDLING SYSTEMAn ultrastable structure assures safe, reliable operation in heavy seas and permits manual or console-controlled deployment, retrieval and depth-keeping. FULL 360° COVERAGEA dual parallel array configuration and advanced signal processing achieve instantaneous, unambiguous left/right target discrimination.SPACE-SAVING TRANSMITTERTOW-BODY CONFIGURATIONInnovative technology achievesomnidirectional, large aperture acousticperformance in a compact, sleek tow-body assembly.REVERBERATION SUPRESSIONThe unique transmitter design enablesforward, aft, port and starboarddirectional transmission. This capabilitydiverts energy concentration away fromshorelines and landmasses, minimizingreverb and optimizing target detection.SONAR PERFORMANCE PREDICTIONA key ingredient to mission planning,LFATS computes and displays systemdetection capability based on modeled ormeasured environmental data.Key Features>Wide-area search>Target detection, localization andclassification>T racking and attack>Embedded trainingSonar Processing>Active processing: State-of-the-art signal processing offers acomprehensive range of single- andmulti-pulse, FM and CW processingfor detection and tracking. Targetdetection, localization andclassification>P assive processing: LFATS featuresfull 100-to-2,000 Hz continuouswideband coverage. Broadband,DEMON and narrowband analyzers,torpedo alert and extendedtracking functions constitute asuite of passive tools to track andanalyze targets.>Playback mode: Playback isseamlessly integrated intopassive and active operation,enabling postanalysis of pre-recorded mission data and is a keycomponent to operator training.>Built-in test: Power-up, continuousbackground and operator-initiatedtest modes combine to boostsystem availability and accelerateoperational readiness.UNIQUE EXTENSION/RETRACTIONMECHANISM TRANSFORMS COMPACTTOW-BODY CONFIGURATION TO ALARGE-APERTURE MULTIDIRECTIONALTRANSMITTERDISPLAYS AND OPERATOR INTERFACES>State-of-the-art workstation-based operator machineinterface: Trackball, point-and-click control, pull-down menu function and parameter selection allows easy access to key information. >Displays: A strategic balance of multifunction displays,built on a modern OpenGL framework, offer flexible search, classification and geographic formats. Ground-stabilized, high-resolution color monitors capture details in the real-time processed sonar data. > B uilt-in operator aids: To simplify operation, LFATS provides recommended mode/parameter settings, automated range-of-day estimation and data history recall. >COTS hardware: LFATS incorporates a modular, expandable open architecture to accommodate future technology.L3Harrissellsht_LFATS© 2022 L3Harris Technologies, Inc. | 09/2022NON-EXPORT CONTROLLED - These item(s)/data have been reviewed in accordance with the InternationalTraffic in Arms Regulations (ITAR), 22 CFR part 120.33, and the Export Administration Regulations (EAR), 15 CFR 734(3)(b)(3), and may be released without export restrictions.L3Harris Technologies is an agile global aerospace and defense technology innovator, delivering end-to-endsolutions that meet customers’ mission-critical needs. The company provides advanced defense and commercial technologies across air, land, sea, space and cyber domains.t 818 367 0111 | f 818 364 2491 *******************WINCH AND HANDLINGSYSTEMSHIP ELECTRONICSTOWED SUBSYSTEMSONAR OPERATORCONSOLETRANSMIT POWERAMPLIFIER 1025 W. NASA Boulevard Melbourne, FL 32919SPECIFICATIONSOperating Modes Active, passive, test, playback, multi-staticSource Level 219 dB Omnidirectional, 222 dB Sector Steered Projector Elements 16 in 4 stavesTransmission Omnidirectional or by sector Operating Depth 15-to-300 m Survival Speed 30 knotsSize Winch & Handling Subsystem:180 in. x 138 in. x 84 in.(4.5 m x 3.5 m x 2.2 m)Sonar Operator Console:60 in. x 26 in. x 68 in.(1.52 m x 0.66 m x 1.73 m)Transmit Power Amplifier:42 in. x 28 in. x 68 in.(1.07 m x 0.71 m x 1.73 m)Weight Winch & Handling: 3,954 kg (8,717 lb.)Towed Subsystem: 678 kg (1,495 lb.)Ship Electronics: 928 kg (2,045 lb.)Platforms Frigates, corvettes, small patrol boats Receive ArrayConfiguration: Twin-lineNumber of channels: 48 per lineLength: 26.5 m (86.9 ft.)Array directivity: >18 dB @ 1,380 HzLFATS PROCESSINGActiveActive Band 1,200-to-1,00 HzProcessing CW, FM, wavetrain, multi-pulse matched filtering Pulse Lengths Range-dependent, .039 to 10 sec. max.FM Bandwidth 50, 100 and 300 HzTracking 20 auto and operator-initiated Displays PPI, bearing range, Doppler range, FM A-scan, geographic overlayRange Scale5, 10, 20, 40, and 80 kyd PassivePassive Band Continuous 100-to-2,000 HzProcessing Broadband, narrowband, ALI, DEMON and tracking Displays BTR, BFI, NALI, DEMON and LOFAR Tracking 20 auto and operator-initiatedCommonOwn-ship noise reduction, doppler nullification, directional audio。
菜单栏:File 文件Open 打开F3Attach 附加Exit 退出View 查看Log 日记Executable modules 可执行模块Memory 内存Heap 堆栈Threads 线程Windows窗口Handles 句柄CPUSEH chain SEH链Patches 补丁Call stack 调用堆栈Breakpoints 断点Watches 监视References 参考Run trace Run跟踪Source 源码Source files 源文件File 文件Text files 文本文件Debug 调试Run 运行Pause 暂停Restart 重新开始Close 关闭Step into 单步步入Step over 单步步过(不进入call)Animate into 自动步入Animate over 自动步过Execute till return 执行到返回Execute till user code 执行到用户代码Open or clear run trace 打开或清除RUN跟踪Trace into 跟踪步入Trace over 跟踪步过Set condition 设置条件Close run trace 关闭Run跟踪Hardware breakpoints 硬件断点Inspect 检查Call DLL export 使用DLL输出Arguments 参数Select import libraries 选择导入库Select path for symbols 选择符号路径Plugins 插件Bookmarks 书签插件,该插件支持调试程序时设置10个书签Command line 命令行插件,该插件支持输入命令进行调试Options 选项Appearance 界面选项Debugging options 调试设置选项Just-in-time debugging 实时调试设置Add to Explorer 添加到资源管理器右键菜单Window 窗口Always on top 总在最前Cascade 层叠Tile horizontal 水平平铺Tile vertical 垂直平铺Arrange icons 排列图标Help 帮助About 关于Contents 帮助内容Select API help file 选择API帮助文件Open API help file 打开API帮助文件寄存器窗口右键菜单Backup 备份Create backup 创建备份Load backup from file 从文件载入备份Save date to file 保存数据到文件Copy 复制To clipboard 到剪贴板To file 到文件Select all 全选选择程序Binary 二进制Edit 编辑File with 00’s 用00填充File with NOPs 用NOP填充Binary copy 二进制复制Binary paste 二进制粘贴Assemble 汇编Label 标签Comment 注释Break point 断点Toggle 切换Conditional 条件Conditional log 条件记录Run to selection 运行到选定位置Memory,on access 内存访问Memory,on write 内存写入Hardware,on execution 硬件执行Set real SFX entry here 设置真正的自解压入口HIT跟踪添加选择部分添加函数过程添加所有已识别的函数过程Run trace RUN跟踪添加选择部分添加函数过程添加函数过程中的分支添加所有函数过程的入口Skip selection when tracing 跟踪时忽略选定的部分Set condition 设置条件New origin here 此处为新EIPGo to 转到Origin EIPPrevious 上个Expression 表达式上个函数过程下个函数过程Follow in dump 数据窗中跟随Selection 选择查看调用树Search for 查找Name(label) in current module 当前模块中的名称(标签)Name in all modules 所有模块中的名称Command 命令Sequence of commands 命令序列Constant 常量Binary string 二进制字符串All intermodular calls 所有模块间的调用All commands 所有命令All sequences 所有命令序列All constants 所有常量All switches 所有分支All referenced text strings 所有参考文本字符串User-defined label 用户定义的标签User-defined comment 用户定义的注释Find references to 查找参考Selected command 选定命令Jump destination 跳转到目的地View 查看Executable file 可执行文件Relative address 相对地址Module 模块Copy to executable 复制到可执行文件Selection 选择Analysis 分析Analyse code 分析代码Remove analyse from module 从模块中删除分析Scan object files 扫描目标文件Remove object scan from module 从模块中删除目标扫描假定参数Remove analyse from section从选定内容删除分析During next analysis,treat selection as 在下次分析时,将徐泽部分视为CommandByteWordDoublewordCommandsBytesWordsDoublewordsASCII textUNICODE textCode doctorFKVMP VMP脱壳工具IDAFicator 窗口布局StrongOD 反反调试工具loadMapEx 加载map file到od的cpu窗口当前汇编代码所在的模块运行脚本Script Functions 脚本软件用OllyDump脱壳调试进程Zeus VMProtect分析及自动脱壳插件中文搜索引擎Appearance 界面选项Always on topShow barShow horizontal scrollDefault columnsFont(this)Colors(this)Font(all)Colors(all)Highlighting模块窗口右键Actualize 刷新Follow import in Disassembler 反汇编窗口中跟随输入函数Follow in Dump 数据窗口中跟随Find references to import 查找输入函数参考View call tree 查看调用树Toggle breakpoint on import 在输入函数中切换断点Conditional breakpoint on import 在输入函数上设条件断点Conditional log breakpoint on import 在输入函数上设条件记录断点Set breakpoint on every reference 在每个参考上设置断点Set log breakpoint on every reference 在每个参考上设置记录断点Remove all breakpoints 删除所有断点Copy to clipboard 复制到剪切板Sort by 排序按Appearance 界面选项Code doctor1、反混淆比如遇到花指令或是什么的,可以在OD中先选中要反混淆的代码,然后单击插件命令中的“Deobfuscate”即可将代码还原。
To appear in ACM Computing Surveys 1997This work was supported by ARPA Contract #DAAH04-94-G-0327, by NSF Contract #CISE9121887, by anNSF Graduate Fellowsh p and by a European Research Consort um for Informat cs and Mathemat cs (ERCIM) Postgraduate Fellowship.Trace-driven Memory Simulation: A SurveyRICHARD A. UHLIGIntel Microcomputer Research Lab, 2111 N.E. 25th Avenue, Hillsboro, Oregon 97124-5961TREVOR N. MUDGE Advanced Computer Architecture Lab (ACAL), Electrical Eng. and Computer Science DepartmentThe University of Michigan, 1301 Beal Ave., Ann Arbor, Michigan 48109-2122As the gap between processor and memory speeds continues to widen, methods for evaluatingmemory-system designs before they are implemented in hardware are becoming increasinglyimportant. One such method, trace-driven memory simulation, has been the subject of intenseinterest among researchers and has, as a result, enjoyed rapid development and substantialimprovements during the past decade. This paper surveys and analyzes these developments byestablishing criteria for evaluating trace-driven methods, and then applies these criteria to describe,categorize and compare over 50 trace-driven simulation tools. We discuss the strengths andweaknesses of different approaches and show that no single method is best when all criteria,including accuracy, speed, memory, flexibility, portability, expense, and ease-of-use are considered.In a concluding section, we examine fundamental limitations to trace-driven simulation, and surveysome recent developments in memory simulation that may overcome these bottlenecks.Categories and Subject Descriptors: B.3.3 [ Memory Structures ]: Performance Analysis and DesignAids— simulation; C.4 [ Performance of Systems ]— measurement techniques; I.6[ Simulation andModeling ];General Terms: Experimentation, MeasurementAdditional Keywords and Phrases: Trace-driven simulation, memory simulation, caches, TLBs,memory management1INTRODUCTIONIt is well known that the increasing gap between processor and main-memory speeds is one ofthe primary bottlenecks to good overall computer-system performance. The traditional solution tothis problem is to build small, fast memories (caches) to hold recently-used data and instructionsclose to the processor for quicker access [Smith82]. During the past decade, microprocessor clockrates have increased at a rate of 40% per year, while main-memory (DRAM) speeds have increasedat a rate of only about 11% per year [Upton94]. This trend has made modern computer systemsi ncreasi ngly dependent on caches. A case i n poi nt: di sabli ng the cache of the V AX 11/780, amachine introduced in the late 1970’s, would have increased its workload run times by a factor ofonly 1.6 [Jouppi 90], whi le di sabli ng the cache of the HP 9000/735, a more recent machi neintroduced in the early 1990’s, would cause workloads to slow by a factor of 15 [Upton94].It is clear that these trends are making overall system performance highly sensitive to evenm i nor adjustments i n cache des i gns. As a result, memory-system des igners are becom ing2•Uhlig et al.increasingly dependent on methods for evaluating design options before having to commit them to actual i mplementati on. One such method i s to wri te a program that si mulates the behavi or of a proposed memory-system desi gn, and then to apply a sequence of memory references to the simulation model to mimic the way that a real processor might exercise the design. The sequence of memory references i s called an address trace, and the method i s called trace-dri ven memory si mulati on. Although conceptually si mple, a number of factors make trace-dri ven si mulati on di fficult in practice. Collecting a complete and detailed address trace may be hard, especially if it is to represent a complex workload consi sti ng of multi ple processes, the operati ng system, and dynami cally-li nked or dynamically-compiled code. Another practical problem is that address traces are typi cally very large, potenti ally consumi ng gi gabytes of storage space. Fi nally, processi ng a trace to simulate the performance of a hypothetical memory design is a time-consuming task.Duri ng the past ten years, researchers worki ng on these problems have made a number ofimportant advancesin trace collection, trace reduction and trace processing. This survey documents these developments by defini ng vari ous cri teri a for judgi ng and compari ng these di fferent components of trace-dri ven si mulati on. We consi der accuracy, speed, memory usage,flexi bi li ty, portabi li ty, expense and ease-of-use i n an analysi s and compari son of over 50 actual implementations of recent trace-driven simulation tools. We discuss which methods are best under whi ch ci rcumstances, and comment on fundamental li mi tati ons to trace-dri ven si mulati on i n general. Finally, we conclude this survey with a description of recent developments in memory-system simulation that may overcome fundamental bottlenecks to strict trace-driven simulation.2SCOPE, RELATED SURVEYS AND ORGANIZATIONTrace-driven simulation has been used to evaluate memory systems for decades. In his 1982 survey of cache memories, A. J. Smith gives examples of trace-driven memory-system studies that date as far back as 1966 [Smi th82], and several surveys of trace-dri ven techni ques have been written since then [Holliday91; Kaeli91; Stunkel91; Cmelik94]. Holliday examined the topic for uni processor and multi processor memory-system desi gn [Holli day91] and Stunkel et al. studi ed trace-driven simulation in the specific context of multiprocessor design [Stunkel91]. Pierce et al. surveyed one aspect of trace collection based on static code annotation techniques [Pierce95], while Cmelik et al. surveyed trace collectors based on code emulation [Cmelik94].This survey distinguishes itself from the others in that it is more up-to-date, and in its scope. Numerous developments in trace-driven simulation during the past five years warrant a new survey of tools and methods that have not been reviewed before. This survey is broader in scope than the surveys by Pierce et al. and Cmelik et al., in that it considers all aspects of trace-driven simulation, from trace collection and trace reduction to trace processing. On the other hand, its scope is more limited, yet more detailed than the surveys by Holliday and Stunkel et al. in that it focuses mainly on uniprocessor memory simulation, but pays greater attention to tools capable of tracing multi-process workloads and the operating system.We do not examine analytical methods for predicting memory-system performance. A good starting point for study of these techniques is [Agarwal89b]. Although trace-driven methods have been successfully appli ed to other domai ns of computer archi tecture, such as the si mulati on of super-scalar processor architecture, or the design of I/O systems, this survey will focus on trace-driven memory-system simulation only. Memory performance can also be measured with hardware-based counters that keep track of events such as cache misses in a running system. While useful for determining the memory performance of an existing machine, such counters are unable to predictTo appear in ACM Computing Surveys 1997To appear in ACM Computing Surveys 1997Trace-driven Memory Simulation: A Survey •3the performance of hypothetical memory designs. We do not study them here, but several examplescan be found in [Emer84; Clark85; IBM90; Nagle92; Digital92; Cvetanovic94].We begi n thi s survey by establi shi ng several general cri teri a for evaluati ng trace-dri vensi mulati on tools i n Secti on 3. Secti ons 4 through 7 exami ne the di fferent stages of trace-drivensimulation, and Section 8 studies some new methods for memory simulation that extend beyond thetraditional trace-driven paradigm. Section 9 concludes the survey with a summary.Th s survey makes frequent use of tables to summar ze the key features, performancecharacteristics, and original references for each of the trace-driven simulation tools discussed inmain body of text. This organization enables a reader to approach the material at several levels ofdetail. We suggest a reading of Section 3, the opening paragraphs of Sections 4 through 7, and anexamination of each of the accompanying tables to obtain a good cursory introduction to the field.A reader desiring further information can then read the remainder of the body text in greater detail.The original papers themselves, of course, offer the greatest level of detail, and their references canbe found quickly in the summary tables and the bibliography at the end of the survey.3GENERAL EVALUATION CRITERIA AND METRICSA trace-driven memory si mulati on i s someti mes vi ewed as consi sti ng of three mai n stages:trace collection , trace reduction and trace processing [Holliday91] (see Figure 1). Trace collectionis the process of determining the exact sequence of memory references made by some workload ofinterest. Because the resulting address traces can be very large, trace-reduction techniques are oftenused to remove unneeded or redundant data from a full address trace. In the final stage, traceprocessing , the trace i s fed to a program that si mulates the behavi or of a hypotheti cal memorysystem. To form a complete trace-driven simulation system, the individual stages of trace-drivensimulation must be connected through trace interfaces so that trace data can flow from one stage tothe next.In Secti ons 3-7, we shall exami ne each of the above components i n greater detai l, but i t i shelpful to define, at the outset, some general cri teri a for judging and compari ng di fferent trace-driven simulation tools. 1 Perhaps the most important criterion is accuracy , which we loosely definein terms of percent error in some performance metric such as miss ratio or misses per instruction:(Eqn 1)Error is often difficult to determine in practice because true performance many not be known,or because it may vary from run to run of a given workload. Furthermore, accuracy is affected bymany factors, such as the “representativeness” of the chosen workload, the quality of the collectedaddress trace, the way that the trace is reduced, and the level of detail modeled by the trace-drivenmemory si mulator. Although i t may be di fficult to determi ne from whi ch of these factors somecomponent of error originates, it is important to understand the nature of these errors, and how theycan be minimized:Ideally, a workload suite should be selected in a way that represents the environment in which the memory system is expected to perform. The memory system might be intended for commercial1. Some evaluation criteria apply to only a specific stage of trace-driven simulation, so we shall coverthem in future sections where the details are more relevant.Error True Performance Simulated Performance –()True Performance ()--------------------------------------------------------------------------------------------------------------100%⋅=To appear in ACM Computing Surveys 19974• Uhlig et al.appli cati ons (database, spreadsheet, etc.), for engi neeri ng appli cati ons (computer-ai ded desi gn,circuit simulation, etc.), for embedded applications (e.g., a postscript interpreter in a laser printer),or for some other purpose. Studi es have shown that the di fferences between these types ofworkloads is substantial [Gee93; Maynard94; Uhlig95; Romer96], so good workload selection iscrucial — even the most perfect trace acquisition and simulation tools cannot overcome the bias inpredicted performance that results if this stage of the process is not executed with care.We shall explore, in the next section, some reasons why a collected trace might differ from theactual stream of memory references generated by a workload, but it is easy to see at this point in thed scuss on why dfferences aremportant. Many trace-collecton tools exclude, for example,memory references made by the operating system. Excluding the OS, which may constitute a largefract on of a workload’s act v ty, s bound to affect s mulat on results [Chen93b; Nagle93;Nagle94].T race Collection T race Reduction Figure 1. The Three Stages of T race-driven SimulationT race quality defined by:CompletenessDistortion10x to 100x Reduction FactorMiss ratiosMisses per instruction (MPI)Cycles per instruction (CPI)To appear in ACM Computing Surveys 1997Trace-driven Memory Simulation: A Survey •5When we look at trace reduction in Section 5 we will see that some methods achieve higherdegrees of reducti on at the expense of lost trace i nformati on. When thi s happens, we can use amodified form of Eqn 1 to measure the effects:(Eqn 2)Errors can also come from the final, trace-processing stage, where a memory system’s behavioris simulated. Such errors arise whenever the simulator fails to model the precise behavior of thedesign under study, a task that is becoming increasingly difficult as processors move to memorysystems that support features such as prefetching and non-blocking caches.A second criterion by which each of the stages of trace-driven simulation can be evaluated isspeed . The rate per second at which addresses are collected, reduced or processed is one naturalway to measure speed, but this metric makes it difficult to compare trace collectors or processorsthat have been i mplemented on di fferent hardware platforms. Because the number of addressesprocessed per second by a particular trace processor is a function of the speed of the host hardwareon whi ch i t i s i mplemented, i t i s not meani ngful to compare thi s rate agai nst a di fferent trace-processing method implemented on older or slower host hardware. To overcome this difficulty, wereport all speeds in terms of slowdown relative to the host hardware from which traces are collectedfrom or processed on. Depending on the context, we compute slowdowns in a variety of ways:(Eqn 3)(Eqn 4)(Eqn 5)Because each of these defini ti ons di vi de by the speed of the host hardware, they enable anapproximate comparison of two methods implemented on different hosts.Some of the trace-dri ven si mulati on techni ques that we wi ll exami ne can reduce overallslowdowns. We report their effectiveness in terms of speedups , which divide slowdowns to obtainoverall slowdowns:(Eqn 6)A third general evaluation criterion is the amount of extra memory used by a tool. Dependingon the circumstances, memory can refer to secondary storage (disk or tape), as well as primarystorage (main memory). As with speed, it is often not meaningful to report memory usage in termsof bytes because different workloads running on different hosts may have substantially differentmemory requirements to begin with. Therefore, whenever possible, we report memory usage as anexpansion factor or overhead based on the usual memory required by the workload running on thehost machine:(Eqn 7)Additional memory can be required at each stage. Some trace-collection methods annotate oremulate workloads, causi ng them to expand i n si ze, some trace-processors use complex dataError Measurements with Full Trace Measurements with Reduced Trace –()Measurements with Full Trace ()-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------100%⋅=Slowdown Address Collection Rate Host System Address Generation Rate---------------------------------------------------------------------------------------------=Slowdown Address Processing Rate Host System Address Generation Rate---------------------------------------------------------------------------------------------=Slowdown Total Simulation Time Normal Host System Execution Time -----------------------------------------------------------------------------------------=Overall Slowdown Slowdown Speedup -------------------------=Memory Overhead Additional Memory Required Normal Host Memory Required ----------------------------------------------------------------------------=To appear in ACM Computing Surveys 19976• Uhlig et al.structures that are memory intensive, and trace interfaces use additional memory to buffer tracedata as it passes from stage to stage. The purpose of the second stage, trace reduction, is to reducethese memory requirements. We measure the effectiveness of trace reduction in terms of a memoryreduction factor :(Eqn 8)In additional to accuracy , speed and memory , there are other general evaluation criteria thatrecur throughout this survey. A tool has high portability if it is easy to re-implement it on differenthost hardware. It has flexibility if it is able to be used for the simulation of a wide range of memoryparameters (cache size, line size, associativity, replacement policy, etc.) and for collecting a broadrange of performance metrics (miss ratio, misses per instruction, cycles per instruction, etc.). Byexpense we mean the cost of any hardware or special monitoring equipment required solely for thepurposes of conducting simulations. Finally, ease-of-use refers to the amount of effort required ofthe end user to learn and to operate the trace-driven simulator once it has been developed.4TRACE COLLECTIONTo ensure accurate simulations, collected address traces should be as close as possible to theactual stream of memory references made by a workload when running on a real system. Tracequali ty can be evaluated based on the completeness and detai l i n a trace, or on the degree ofdistortion that t conta ns. A complete trace ncludes all memory references made by eachcomponent of the system, including all user-level processes and the operating system kernel. User-level processes include not only applications, but also OS server and daemon processes that provideservices such as a file system or network access. Complete traces should also include dynamically-compi led or dynami cally-li nked code, whi ch i s becomi ng i ncreasi ngly i mportant i n appli cati onssuch as processor or operating-system emulation [Nagle94; Cmelik94]. An ideal detailed trace isone that is annotated with information beyond simple raw addresses. Useful annotations includechanges i n VM page-table state for translati ng between physi cal and vi rtual addresses, contextswitch points with identifiers specifying newly-activated processes, and tags that mark each addresswith a reference type (read, write, execute), size (word, half word, byte) and a timestamp. Tracesshould be undistorted so that they do not include any additional memory references, or referencesthat appear out of order relative to the actual reference stream of the workload had i t not beenmonitored. Common forms of distortion include trace discontinuities , which occurs when tracingmust stop because a trace buffer i s not large enough to conti nue recordi ng workload memoryreferences, and time dilation and memory dilation , which occur when the tracing method causes amonitored workload to run slower, or to consume more memory than it normally would.In addition to the three aspects of trace quality described above, a good trace collector exhibitsother characteristics as well. In particular, portability , both in moving to other machines of the sametype and to machines that are architecturally different is important. Finally, an ideal trace collectorshould be fast , inexpensive and easy to operate.Address traces have been extracted at vi rtually every system level, from the ci rcui t andmi crocode levels to the compi ler and operati ng-system levels. (see Fi gure 2). We organi ze theremainder of this section accordingly, starting at the lower hardware levels.Reduction Factor Full Address Trace Size Reduced Address Trace Size --------------------------------------------------------------------=To appear in ACM Computing Surveys 1997Trace-driven Memory Simulation: A Survey •74.1External Hardware ProbesA strai ghtforward method for collecti ng address traces i s to record si gnals from electri calprobes physically connected to the address bus of a host computer while it runs a workload. Theaddress and control signals are fed into an external memory buffer at the full speed of the monitoredhost system, and when the buffer fills, its contents are transferred to a standard storage device, suchas tape or disk, so that it can be processed at a later time. If a long, continuous address trace isdesi red, then the buffer must ei ther be very large or there must be some way to stall the hostwhenever the buffer becomes full. It is usually only possible to stall the processor — external I/Odevices, such as disks or network controllers will must usually be permitted to continue operating.If there i s no way to stall the system, then several di sconti nuous address-trace samples can beacquired and concatenated together. In either case, the resulting trace exhibits a form of distortionthat we call trace discontinuity . Table 1 summarizes several probe-based trace collectors recentlydescribed in the literature. We discuss each in greater detail below.Most commercial logic analyzers provide the necessary hardware to construct a probe-basedtrace collector [Tektroni x94; HP91]. Alexander et al. connected a logi c analyzer to a Nati onalSemi conductor 32016-based workstati on runni ng Geni x to collect address traces for TLB andcache simulation [Alexander85; Alexander86]. The small size of the trace buffer (4096 entries of 32bi ts each) necessi tated the desi gn of ci rcui try to place the processor i n a stalled state whi le thebuffer was unloaded to a secondary-storage device. A similar approach was used in the Monstermonitoring system by a group including the authors of this survey [Nagle92]. Monster consists of aDAS 9200 logic analyzer connected to an R2000-based DECstation 3100. The operating-systemkernel was modified to stall the machine in a software loop, avoiding the need for any additionalstall ng hardware. Some logc analyzers provdenterchangeable probes to support mult ple architectures. The DAS 9200, for example, has probe modules for most popular microprocessors, a flexibility that Fuentes exploited to collect addresses from both Alpha-based and Pentium-basedFigure 2. Levels of System Abstraction and T race Collection MethodsHardware Software Single-stepping Code AnnotationInstruction Emulation Microcode Modification External Hardware ProbesTrace-driven Memory Simulation: A Survey•9A problem with hardware monitors based on logic analyzers is that their trace-buffer sizes are often relatively small (4 K-entries to 128 K-entries), resulting either in frequent processor stalls or smaller trace samples, and thus greater trace di storti on due to di sconti nui ti es. Speci al-purpose hardware wi th very large, hi gh-speed memori es has been bui lt to treat thi s problem. Bi omati on Corporati on bui lds a trace-collecti on system wi th 80 mi lli on trace buffer entri es [Bi omati on91]. The trace collector described in [Happel92] has a 40 M-byte trace buffer, large enough to hold 8 million memory references at a time. The Magellan Trace Machine(MTM) has a buffer that can hold 33 million bus transactions [Fuentes93], and recent versions of the Bach system use similarly large buffers [Flanagan94]. Bach offers the additional advantage that it supports monitoring of at least three different microprocessor architectures (i486, 68030, and SPARC).The trend towards higher levels of chip integration creates a problem for probe-based trace collection. Most recent microprocessors implement at least their primary caches and TLBs on-chip, maki ng many of thei r i mportant address and control si gnals i naccessi ble to external probes. Examples of probe-based trace collectors that are limited in this way are described in [Torrellas92] and [Fuentes93]. One solution to this problem is to deactivate on-chip caches to force all load and store operations off chip where they can be detected by external probes. This solution can, however, perturb the behavior of the system. Even if the resulting trace distortion is considered acceptable, some processors do not support disabling of on-chip caches in a general way (i.e., in a way that forces all references off -chip) [Digital92; Fuentes93]. Although full address traces are desirable, a trace of just cache misses is by no means worthless. As we will see in Section 5 on trace reduction, such a trace can sti ll be used to si mulate other cache configurati ons, albei t subject to certai n restri cti ons.The main advantage of all of the probe-based trace collectors described above is their ability to capture trace sequences complete with both user and kernel memory references, and free of most forms of trace di storti on, provi ded that the trace buffer i s deep enough. Although the traces are complete, this does not necessarily mean that they are easy to interpret. Hardware events such as cache misses, integer- and floating-point-unit stalls, exceptions and interrupts all must be separated from run cycles to determine the actual type (read, write, execute) and size (word, half word, byte) of the memory references made by a monitored processor. In processors that implement hardware prefetching or speculative execution, it may be difficult or impossible to separate “true” memory references from those that occur due to a prefetch that might not actually be used. Some of these problems can be overcome by implementing the inverse function of the processor sequencer, either in the trace-collecting hardware, or in a trace post-processing tool [Flanagan94; Nagle92]. Because the addresses captured by a probe-based monitor are usually physical addresses, special methods that may require cooperation from the host OS must be used to reverse-translate addresses to their matching virtual addresses [Grimsrud93]. For similar reasons, it is often difficult to relate a given memory reference to the process that made it without assistance from a modified OS kernel that em ts trace markers or other annotat ons as clues [Torellas92; Nagle92; Fuentes93]. These problems all follow from the fact that probe-based trace collectors are external to the monitored system and therefore do not have easy access to operating-system data structures.A common m sconcept on regard ng trace collect on us ng hardware probes s that the technique is very fast. While it is true that acquisition of the trace proceeds at the full speed of the monitored system, it is important to account for the overhead of managing trace-buffer overflow as well as the time required to empty the buffer. This overhead is typically not reported in published papers, but because most systems can unload these buffers only through some form of relatively low-bandwi dth channel (see Table 1), thi s overhead i s necessari ly hi gh. For a system whereTo appear in ACM Computing Surveys 199710•Uhlig et al.overhead data is available (Monster), approximately 12 hours are required to obtain 11 seconds of real-ti me system activi ty. Fuentes has reported that a si mi lar delay of 45 mi nutes i s requi red to download about one second of real-time activity captured by the MTM system [Fuentes93]. The overhead from both these systems comes from movi ng trace-buffer data over an Ethernet to a machine with SCSI-connected disks, and represents effective slowdowns of more than a thousand times relative to the speed of the unmonitored host. Most of the other systems listed in Table 1 use similar or even lower-bandwidth interconnect to the trace buffer, so their overheads are comparable or higher. Although trace collection with hardware probes is time consuming, once the traces have been captured and stored to a permanent file they require no special hardware to use,2 and can be used repeatedly to achieve reproducible simulation results.Hardware probe-based methods share other common disadvantages. The first is expense. Logic analyzers with deep trace memories cost from $50,000 to $200,000 [Tektronix94; HP91]. These amounts are probably low compared to the engi neeri ng costs associ ated wi th desi gni ng custom hardware as i n [Flanagan92] or [Torellas92]. A second problem i s portabi li ty. Although logi c analyzers like the DAS 9200 support probes for most popular microprocessors, it is often necessary to physically modify the motherboard or chassis of the monitored system to enable probe access to the signals of interest [Nagle92; Fuentes94]. These systems also require an understanding of the electri cal i ssues concerni ng the connecti on of probes to runni ng hardware, and are therefore typically fragile, sensitive to their operating environment, and difficult to learn and operate.As noted above, the advent of on-chip caches is making it increasingly difficult to build trace collect on hardware as an afterthought. The future of probe-based trace collect on therefore depends mainly on the level of support designed into systems for this task. A small, on-chip trace buffer that traps to the operating-system kernel whenever it becomes full is an example of the sort of support that could be provided. However, even a very small buffer of 2048 entries with 32-bits per entry (8 K-bytes) is about the size of on-chip caches in current microprocessors [Nagle94] and thus would be relatively costly in terms of chip area. An alternative approach would be to send certain key internal signals through the microprocessor package pins so that they can be monitored externally. We are not aware of any existing microprocessor that includes documented monitoring support of this type.4.2Microcode ModificationThe high cost of circuit-level probing has motivated many researchers to develop methods for collecting traces at higher levels of system abstraction. One such alternative is to collect traces at the borderline between the hardware and software levels of a system in microcode (see Figure 2). From the beginnings of the IBM 360 series (1964) until the DEC V AX machines, the most common method for implementing control logic was microcode [Wilkes69]. When implemented off-chip, a mi crocode memory was often wri table or could be modified through replacement, maki ng i t possi ble to change the behavi or of i nstructi ons, or to support multi ple i nstructi on sets. Agarwal realized that this mechanism made it possible to collect address traces [Agarwal86; Agarwal88]. He modified the microcode on a V AX 8200 to cause all instructions to deposit the addresses of their memory references into a reserved area of main memory as a side effect of their execution.2. The Monster traces, complete wi th trace-i nterpreti ng tools, are avai lable to the general researchcommunity and can be obtained by contacting the authors of this survey.To appear in ACM Computing Surveys 1997。
chromechromium启动命令⾏开关参数switchescommandlineflagsLast automated update occurred on 2020-08-12.out\Default\chrome1.exe --enable-skia-benchmarking --enable-gpu-benchmarking --no-sandbox --process-per-site --remote-debugging-port=9222 --enable-logging --disable-gpu-rasterization --disable-gpu rem --ui-show-composited-layer-borders --ui-show-layer-animation-bounds --ui-show-paint-rects --ui-show-screenspace-rectsrem http://localhost:8080/a.htmlrem --remote-debugging-port=9222rem --enable-logging --v=1 --disable-gpu-vsync --vmodule=layer_tree_host=3 --ui-show-composited-layer-bordersrem --vmodule=metrics=2,image_animation_controller=2,layer_tree_host_impl=2 --v=0 --trace-startup=ccrem --show-composited-layer-borders --show-screenspace-rects1,常⽤参数软渲染与gpu渲染切换:--disable-gpu-rasterization --disable-gpu启动时指定⽤户数据的存放⽬录--user-data-dir=UserDataDirView Code源码存放:/ / chrome_base/base_switches.h// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "base/base_switches.h"#include "build/build_config.h"namespace switches {// Delays execution of TaskPriority::BEST_EFFORT tasks until shutdown.const char kDisableBestEffortTasks[] = "disable-best-effort-tasks";// Disables the crash reporting.const char kDisableBreakpad[] = "disable-breakpad";// Comma-separated list of feature names to disable. See also kEnableFeatures.const char kDisableFeatures[] = "disable-features";// Force disabling of low-end device mode when set.const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode";// Indicates that crash reporting should be enabled. On platforms where helper// processes cannot access to files needed to make this decision, this flag is// generated internally.const char kEnableCrashReporter[] = "enable-crash-reporter";// Comma-separated list of feature names to enable. See also kDisableFeatures.const char kEnableFeatures[] = "enable-features";// Force low-end device mode when set.const char kEnableLowEndDeviceMode[] = "enable-low-end-device-mode";// This option can be used to force field trials when testing changes locally.// The argument is a list of name and value pairs, separated by slashes. If a// trial name is prefixed with an asterisk, that trial will start activated.// For example, the following argument defines two trials, with the second one// activated: "GoogleNow/Enable/*MaterialDesignNTP/Default/" This option can// also be used by the browser process to send the list of trials to a// non-browser process, using the same format. See// FieldTrialList::CreateTrialsFromString() in field_trial.h for details.const char kForceFieldTrials[] = "force-fieldtrials";// Generates full memory crash dump.const char kFullMemoryCrashReport[] = "full-memory-crash-report";// Logs information about all tasks posted with TaskPriority::BEST_EFFORT. Use// this to diagnose issues that are thought to be caused by// TaskPriority::BEST_EFFORT execution fences. Note: Tasks posted to a// non-BEST_EFFORT UpdateableSequencedTaskRunner whose priority is later lowered// to BEST_EFFORT are not logged.const char kLogBestEffortTasks[] = "log-best-effort-tasks";// Suppresses all error dialogs when present.const char kNoErrorDialogs[] = "noerrdialogs";// Starts the sampling based profiler for the browser process at startup. This// will only work if chrome has been built with the gn arg enable_profiling =const char kProfilingAtStart[] = "profiling-at-start";// Specifies a location for profiling output. This will only work if chrome has// been built with the gyp variable profiling=1 or gn arg enable_profiling=true.//// {pid} if present will be replaced by the pid of the process.// {count} if present will be incremented each time a profile is generated// for this process.// The default is chrome-profile-{pid} for the browser and test-profile-{pid}// for tests.const char kProfilingFile[] = "profiling-file";// Controls whether profile data is periodically flushed to a file. Normally// the data gets written on exit but cases exist where chromium doesn't exit// cleanly (especially when using single-process). A time in seconds can be// specified.const char kProfilingFlush[] = "profiling-flush";// When running certain tests that spawn child processes, this switch indicates // to the test framework that the current process is a child process.const char kTestChildProcess[] = "test-child-process";// When running certain tests that spawn child processes, this switch indicates // to the test framework that the current process should not initialize ICU to// avoid creating any scoped handles too early in startup.const char kTestDoNotInitializeIcu[] = "test-do-not-initialize-icu";// Sends trace events from these categories to a file.// --trace-to-file on its own sends to default categories.const char kTraceToFile[] = "trace-to-file";// Specifies the file name for --trace-to-file. If unspecified, it will// go to a default file name.const char kTraceToFileName[] = "trace-to-file-name";// Gives the default maximal active V-logging level; 0 is the default.// Normally positive values are used for V-logging levels.const char kV[] = "v";// Gives the per-module maximal V-logging levels to override the value// given by --v. E.g. "my_module=2,foo*=3" would change the logging// level for all code in source files "my_module.*" and "foo*.*"// ("-inl" suffixes are also disregarded for this matching).//// Any pattern containing a forward or backward slash will be tested// against the whole pathname and not just the module. E.g.,// "*/foo/bar/*=2" would change the logging level for all code in// source files under a "foo/bar" directory.const char kVModule[] = "vmodule";// Will wait for 60 seconds for a debugger to come to attach to the process. const char kWaitForDebugger[] = "wait-for-debugger";#if defined(OS_WIN)// Disable high-resolution timer on Windows.const char kDisableHighResTimer[] = "disable-highres-timer";// Disables the USB keyboard detection for blocking the OSK on Win8+.const char kDisableUsbKeyboardDetect[] = "disable-usb-keyboard-detect"; #endif#if defined(OS_LINUX) && !defined(OS_CHROMEOS)// The /dev/shm partition is too small in certain VM environments, causing// Chrome to fail or crash (see /715363). Use this flag to// work-around this issue (a temporary directory will always be used to create// anonymous shared memory files).const char kDisableDevShmUsage[] = "disable-dev-shm-usage";#endif#if defined(OS_POSIX)// Used for turning on Breakpad crash reporting in a debug environment where // crash reporting is typically compiled but disabled.const char kEnableCrashReporterForTesting[] ="enable-crash-reporter-for-testing";#endif#if defined(OS_ANDROID)// Enables the reached code profiler that samples all threads in all processes// to determine which functions are almost never executed.const char kEnableReachedCodeProfiler[] = "enable-reached-code-profiler";#endif#if defined(OS_LINUX)// Controls whether or not retired instruction counts are surfaced for threads// in trace events on Linux.//// This flag requires the BPF sandbox to be disabled.const char kEnableThreadInstructionCount[] = "enable-thread-instruction-count"; #endif} // namespace switchesView Code\content\public\common\content_// Copyright 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "content/public/common/content_switches.h"#include "build/build_config.h"#include "media/media_buildflags.h"namespace switches {// The number of MSAA samples for canvas2D. Requires MSAA support by GPU to// have an effect. 0 disables MSAA.const char kAcceleratedCanvas2dMSAASampleCount[] = "canvas-msaa-sample-count"; // Allows processing of input before a frame has been committed.// TODO(schenney): Remove when /987626 is fixed.const char kAllowPreCommitInput[] = "allow-pre-commit-input";// By default, file:// URIs cannot read other file:// URIs. This is an// override for developers who need the old behavior for testing.const char kAllowFileAccessFromFiles[] = "allow-file-access-from-files";// Enables TLS/SSL errors on localhost to be ignored (no interstitial,// no blocking of requests).const char kAllowInsecureLocalhost[] = "allow-insecure-localhost";// Allows loopback interface to be added in network list for peer connection.const char kAllowLoopbackInPeerConnection[] ="allow-loopback-in-peer-connection";// Allow a page to show popups during its unloading.// TODO(https:///937569): Remove this in Chrome 82.const char kAllowPopupsDuringPageUnload[] = "allow-popups-during-page-unload";// Allow a page to send synchronus XHR during its unloading.// TODO(https:///1003101): Remove this in Chrome 82.const char kAllowSyncXHRInPageDismissal[] = "allow-sync-xhr-in-page-dimissal";// Uses the android SkFontManager on linux. The specified directory should// include the configuration xml file with the name "fonts.xml".// This is used in blimp to emulate android fonts on linux.const char kAndroidFontsPath[] = "android-fonts-path";// Set blink settings. Format is <name>[=<value],<name>[=<value>],...// The names are declared in Settings.json5. For boolean type, use "true",// "false", or omit '=<value>' part to set to true. For enum type, use the int// value of the enum value. Applied after other command line flags and prefs.const char kBlinkSettings[] = "blink-settings";// Causes the browser process to crash on startup.const char kBrowserCrashTest[] = "crash-test";// Causes the browser process to display a dialog on launch.const char kBrowserStartupDialog[] = "browser-startup-dialog";// Path to the exe to run for the renderer and plugin subprocesses.const char kBrowserSubprocessPath[] = "browser-subprocess-path";// Tells whether the code is running browser tests (this changes the startup URL// used by the content shell and also disables features that can make tests// flaky [like monitoring of memory pressure]).const char kBrowserTest[] = "browser-test";// Sets the tile size used by composited layers.const char kDefaultTileWidth[] = "default-tile-width";const char kDefaultTileHeight[] = "default-tile-height";// Disable antialiasing on 2d canvas.const char kDisable2dCanvasAntialiasing[] = "disable-canvas-aa";// Disables Canvas2D rendering into a scanout buffer for overlay support.const char kDisable2dCanvasImageChromium[] = "disable-2d-canvas-image-chromium"; // Disables client-visible 3D APIs, in particular WebGL and Pepper 3D.// This is controlled by policy and is kept separate from the other// enable/disable switches to avoid accidentally regressing the policy// support for controlling access to these APIs.const char kDisable3DAPIs[] = "disable-3d-apis";// Disable gpu-accelerated 2d canvas.const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas";// Disables hardware acceleration of video decode, where available.const char kDisableAcceleratedVideoDecode[] ="disable-accelerated-video-decode";// Disables hardware acceleration of video encode, where available.const char kDisableAcceleratedVideoEncode[] ="disable-accelerated-video-encode";// Disable limits on the number of backing stores. Can prevent blinking for// users with many windows/tabs and lots of memory.const char kDisableBackingStoreLimit[] = "disable-backing-store-limit";// Disable backgrounding renders for occluded windows. Done for tests to avoid// nondeterministic behavior.const char kDisableBackgroundingOccludedWindowsForTesting[] ="disable-backgrounding-occluded-windows";// Disable task throttling of timer tasks from background pages.const char kDisableBackgroundTimerThrottling[] ="disable-background-timer-throttling";// Use names from runtime_enabled_features.json5, separated by commas.// Applied after kEnableBlinkFeatures, and after other flags that change these// features.const char kDisableBlinkFeatures[] = "disable-blink-features";// Enable Web Bluetooth Scanning// This switch enables Web Bluetooth Scanning without any// permission prompt for testing.const char kEnableWebBluetoothScanning[] = "enable-web-bluetooth-scanning"; // Disables HTML5 DB support.const char kDisableDatabases[] = "disable-databases";// Disable the per-domain blocking for 3D APIs after GPU reset.// This switch is intended only for tests.const char kDisableDomainBlockingFor3DAPIs[] ="disable-domain-blocking-for-3d-apis";// Disable all versions of WebGL.const char kDisableWebGL[] = "disable-webgl";// Disable WebGL2.const char kDisableWebGL2[] = "disable-webgl2";// Disable FileSystem API.const char kDisableFileSystem[] = "disable-file-system";// Disable 3D inside of flapper.const char kDisableFlash3d[] = "disable-flash-3d";// Disable Stage3D inside of flapper.const char kDisableFlashStage3d[] = "disable-flash-stage3d";// Disable user gesture requirement for presentation.const char kDisableGestureRequirementForPresentation[] ="disable-gesture-requirement-for-presentation";// Disables GPU hardware acceleration. If software renderer is not in place,// then the GPU process won't launch.const char kDisableGpu[] = "disable-gpu";// Prevent the compositor from using its GPU implementation.const char kDisableGpuCompositing[] = "disable-gpu-compositing";// Disable proactive early init of GPU process.const char kDisableGpuEarlyInit[] = "disable-gpu-early-init";// Do not force that all compositor resources be backed by GPU memory buffers. const char kDisableGpuMemoryBufferCompositorResources[] ="disable-gpu-memory-buffer-compositor-resources";// Disable GpuMemoryBuffer backed VideoFrames.const char kDisableGpuMemoryBufferVideoFrames[] ="disable-gpu-memory-buffer-video-frames";// For tests, to disable the limit on the number of times the GPU process may be // restarted.const char kDisableGpuProcessCrashLimit[] = "disable-gpu-process-crash-limit"; // For tests, to disable falling back to software compositing if the GPU Process // has crashed, and reached the GPU Process crash limit.const char kDisableSoftwareCompositingFallback[] ="disable-software-compositing-fallback";// When using CPU rasterizing disable low resolution tiling. This uses// less power, particularly during animations, but more white may be seen// during fast scrolling especially on slower devices.const char kDisableLowResTiling[] = "disable-low-res-tiling";// Disable the thread that crashes the GPU process if it stops responding to// messages.const char kDisableGpuWatchdog[] = "disable-gpu-watchdog";// Disallow image animations to be reset to the beginning to avoid skipping// many frames. Only effective if compositor image animations are enabled. const char kDisableImageAnimationResync[] = "disable-image-animation-resync"; // Disables the IPC flooding protection.// It is activated by default. Some javascript functions can be used to flood// the browser process with IPC. This protection limits the rate at which they// can be used.const char kDisableIpcFloodingProtection[] = "disable-ipc-flooding-protection";// Suppresses hang monitor dialogs in renderer processes. This may allow slow // unload handlers on a page to prevent the tab from closing, but the Task// Manager can be used to terminate the offending process in this case.const char kDisableHangMonitor[] = "disable-hang-monitor";// Disable the RenderThread's HistogramCustomizer.const char kDisableHistogramCustomizer[] = "disable-histogram-customizer"; // Don't kill a child process when it sends a bad IPC message. Apart// from testing, it is a bad idea from a security perspective to enable// this switch.const char kDisableKillAfterBadIPC[] = "disable-kill-after-bad-ipc";// Disables LCD text.const char kDisableLCDText[] = "disable-lcd-text";// Disable LocalStorage.// Force logging to be disabled. Logging is enabled by default in debug// builds.const char kDisableLogging[] = "disable-logging";// Disables using CODECAPI_AVLowLatencyMode when creating DXVA decoders. const char kDisableLowLatencyDxva[] = "disable-low-latency-dxva";// Disables clearing the rendering output of a renderer when it didn't commit// new output for a while after a top-frame navigation.const char kDisableNewContentRenderingTimeout[] ="disable-new-content-rendering-timeout";// Disables the Web Notification and the Push APIs.const char kDisableNotifications[] = "disable-notifications";// Disable partial raster in the renderer. Disabling this switch also disables// the use of persistent gpu memory buffers.const char kDisablePartialRaster[] = "disable-partial-raster";// Disable Pepper3D.const char kDisablePepper3d[] = "disable-pepper-3d";// Disables the Permissions API.const char kDisablePermissionsAPI[] = "disable-permissions-api";// Disable Image Chromium for Pepper 3d.const char kDisablePepper3DImageChromium[] = "disable-pepper-3d-image-chromium"; // Disables compositor-accelerated touch-screen pinch gestures.const char kDisablePinch[] = "disable-pinch";// Disable the creation of compositing layers when it would prevent LCD text.const char kDisablePreferCompositingToLCDText[] ="disable-prefer-compositing-to-lcd-text";// Disables the Presentation API.const char kDisablePresentationAPI[] = "disable-presentation-api";// Disables throttling of history.pushState/replaceState calls.const char kDisablePushStateThrottle[] = "disable-pushstate-throttle";// Disables RGBA_4444 textures.const char kDisableRGBA4444Textures[] = "disable-rgba-4444-textures";// Taints all <canvas> elements, regardless of origin.const char kDisableReadingFromCanvas[] = "disable-reading-from-canvas";// Disables remote web font support. SVG font should always work whether this// option is specified or not.const char kDisableRemoteFonts[] = "disable-remote-fonts";// Disables the RemotePlayback API.const char kDisableRemotePlaybackAPI[] = "disable-remote-playback-api";// Turns off the accessibility in the renderer.const char kDisableRendererAccessibility[] = "disable-renderer-accessibility";// Prevent renderer process backgrounding when set.const char kDisableRendererBackgrounding[] = "disable-renderer-backgrounding";// Whether the ResourceScheduler is disabled. Note this is only useful for C++// Headless embedders who need to implement their own resource scheduling.const char kDisableResourceScheduler[] = "disable-resource-scheduler";// Disable shared workers.const char kDisableSharedWorkers[] = "disable-shared-workers";// Do not use runtime-detected high-end CPU optimizations in Skia. This is// useful for forcing a baseline code path for e.g. web tests.const char kDisableSkiaRuntimeOpts[] = "disable-skia-runtime-opts";// Disable smooth scrolling for testing.const char kDisableSmoothScrolling[] = "disable-smooth-scrolling";// Disables the use of a 3D software rasterizer.const char kDisableSoftwareRasterizer[] = "disable-software-rasterizer";// Disables the Web Speech API (both speech recognition and synthesis).const char kDisableSpeechAPI[] = "disable-speech-api";// Disables the speech synthesis part of Web Speech API.const char kDisableSpeechSynthesisAPI[] = "disable-speech-synthesis-api";// Disables adding the test certs in the network process.const char kDisableTestCerts[] = "disable-test-root-certs";// Disable multithreaded GPU compositing of web content.const char kDisableThreadedCompositing[] = "disable-threaded-compositing";// Disable multithreaded, compositor scrolling of web content.const char kDisableThreadedScrolling[] = "disable-threaded-scrolling";// Disable V8 idle tasks.const char kDisableV8IdleTasks[] = "disable-v8-idle-tasks";// Disables WebGL rendering into a scanout buffer for overlay support.const char kDisableWebGLImageChromium[] = "disable-webgl-image-chromium";// Don't enforce the same-origin policy. (Used by people testing their sites.)// Disable rasterizer that writes directly to GPU memory associated with tiles. const char kDisableZeroCopy[] = "disable-zero-copy";// Disable the video decoder from drawing directly to a texture.const char kDisableZeroCopyDxgiVideo[] = "disable-zero-copy-dxgi-video";// Specifies if the |DOMAutomationController| needs to be bound in the// renderer. This binding happens on per-frame basis and hence can potentially// be a performance bottleneck. One should only enable it when automating dom// based tests.const char kDomAutomationController[] = "dom-automation";// Disable antialiasing on 2d canvas clipsconst char kDisable2dCanvasClipAntialiasing[] = "disable-2d-canvas-clip-aa";// Disable YUV image decoding for those formats and cases where it's supported. // Has no effect unless GPU rasterization is enabled.const char kDisableYUVImageDecoding[] = "disable-yuv-image-decoding";// Logs Runtime Call Stats for Blink. --single-process also needs to be// used along with this for the stats to be logged.const char kDumpBlinkRuntimeCallStats[] = "dump-blink-runtime-call-stats";// Enables LCD text.const char kEnableLCDText[] = "enable-lcd-text";// Enable the creation of compositing layers when it would prevent LCD text.const char kEnablePreferCompositingToLCDText[] ="enable-prefer-compositing-to-lcd-text";// Enable one or more Blink runtime-enabled features.// Use names from runtime_enabled_features.json5, separated by commas.// Applied before kDisableBlinkFeatures, and after other flags that change these// features.const char kEnableBlinkFeatures[] = "enable-blink-features";// Enables Canvas 2D overlays for Windows.const char kEnableCanvas2dSwapChain[] = "enable-canvas2d-swap-chain";// Enable native caret browsing, in which a moveable cursor is placed on a web// page, allowing a user to select and navigate through non-editable text using// just a keyboard. See https:///977390 for links to i2i.const char kEnableCaretBrowsing[] = "enable-caret-browsing";// Enables experimental WebAssembly features.const char kEnableExperimentalWebAssemblyFeatures[] ="enable-experimental-webassembly-features";// Enables Web Platform features that are in development.const char kEnableExperimentalWebPlatformFeatures[] ="enable-experimental-web-platform-features";// Disables all RuntimeEnabledFeatures that can be enabled via OriginTrials.const char kDisableOriginTrialControlledBlinkFeatures[] ="disable-origin-trial-controlled-blink-features";// Specify that all compositor resources should be backed by GPU memory buffers. const char kEnableGpuMemoryBufferCompositorResources[] ="enable-gpu-memory-buffer-compositor-resources";// Enable GpuMemoryBuffer backed VideoFrames.const char kEnableGpuMemoryBufferVideoFrames[] ="enable-gpu-memory-buffer-video-frames";// When using CPU rasterizing generate low resolution tiling. Low res// tiles may be displayed during fast scrolls especially on slower devices.const char kEnableLowResTiling[] = "enable-low-res-tiling";// Force logging to be enabled. Logging is disabled by default in release// builds.const char kEnableLogging[] = "enable-logging";// Enables the type, downlinkMax attributes of the NetInfo API. Also, enables// triggering of change attribute of the NetInfo API when there is a change in// the connection type.const char kEnableNetworkInformationDownlinkMax[] ="enable-network-information-downlink-max";// Disables the video decoder from drawing to an NV12 textures instead of ARGB. const char kDisableNv12DxgiVideo[] = "disable-nv12-dxgi-video";// Enables testing features of the Plugin Placeholder. For internal use only.const char kEnablePluginPlaceholderTesting[] ="enable-plugin-placeholder-testing";// Make the values returned to window.performance.memory more granular and more // up to date in shared worker. Without this flag, the memory information is// still available, but it is bucketized and updated less frequently. This flag// also applys to workers.const char kEnablePreciseMemoryInfo[] = "enable-precise-memory-info";// Enables PrintBrowser mode, in which everything renders as though printed. const char kEnablePrintBrowser[] = "enable-print-browser";// Enables RGBA_4444 textures.const char kEnableRGBA4444Textures[] = "enable-rgba-4444-textures";// Set options to cache V8 data. (off, preparse data, or code)const char kV8CacheOptions[] = "v8-cache-options";// If true the ServiceProcessLauncher is used to launch services. This allows// for service binaries to be loaded rather than using the utility process. This// is only useful for tests.const char kEnableServiceBinaryLauncher[] = "enable-service-binary-launcher";// Enables the Skia benchmarking extensionconst char kEnableSkiaBenchmarking[] = "enable-skia-benchmarking";// On platforms that support it, enables smooth scroll animation.const char kEnableSmoothScrolling[] = "enable-smooth-scrolling";// Enable spatial navigationconst char kEnableSpatialNavigation[] = "enable-spatial-navigation";// Blocks all insecure requests from secure contexts, and prevents the user// from overriding that decision.const char kEnableStrictMixedContentChecking[] ="enable-strict-mixed-content-checking";// Blocks insecure usage of a number of powerful features (device orientation,// for example) that we haven't yet deprecated for the web at large.const char kEnableStrictPowerfulFeatureRestrictions[] ="enable-strict-powerful-feature-restrictions";// Feature flag to enable HTTPS subresource internal redirects to compressed// versions.const char kEnableSubresourceRedirect[] = "enable-subresource-redirect";// Enabled threaded compositing for web tests.const char kEnableThreadedCompositing[] = "enable-threaded-compositing";// Enable tracing during the execution of browser tests.const char kEnableTracing[] = "enable-tracing";// The filename to write the output of the test tracing to.const char kEnableTracingOutput[] = "enable-tracing-output";// Enable screen capturing support for MediaStream API.const char kEnableUserMediaScreenCapturing[] ="enable-usermedia-screen-capturing";// Enable the mode that uses zooming to implment device scale factor behavior. const char kEnableUseZoomForDSF[] = "enable-use-zoom-for-dsf";// Enables the use of the @viewport CSS rule, which allows// pages to control aspects of their own layout. This also turns on touch-screen// pinch gestures.const char kEnableViewport[] = "enable-viewport";// Enable the Vtune profiler support.const char kEnableVtune[] = "enable-vtune-support";// Enable the Web Authentication Testing API.//https://w3c.github.io/webauthnconst char kEnableWebAuthTestingAPI[] = "enable-web-authentication-testing-api"; // Enable WebGL2 Compute context.const char kEnableWebGL2ComputeContext[] = "enable-webgl2-compute-context"; // Enables WebGL extensions not yet approved by the community.const char kEnableWebGLDraftExtensions[] = "enable-webgl-draft-extensions";// Enables WebGL rendering into a scanout buffer for overlay support.const char kEnableWebGLImageChromium[] = "enable-webgl-image-chromium";// Enables interaction with virtual reality devices.const char kEnableWebVR[] = "enable-webvr";// Enable rasterizer that writes directly to GPU memory associated with tiles. const char kEnableZeroCopy[] = "enable-zero-copy";// Handle to the shared memory segment containing field trial state that is to// be shared between processes. The argument to this switch is the handle id// (pointer on Windows) as a string, followed by a comma, then the size of the// shared memory segment as a string.const char kFieldTrialHandle[] = "field-trial-handle";// Define an alias root directory which is replaced with the replacement string// in file URLs. The format is "/alias=/replacement", which would turn// file:///alias/some/path.html into file:///replacement/some/path.html.const char kFileUrlPathAlias[] = "file-url-path-alias";// Always use the Skia GPU backend for drawing layer tiles. Only valid with GPU // accelerated compositing + impl-side painting. Overrides the// kEnableGpuRasterization flag.const char kForceGpuRasterization[] = "force-gpu-rasterization";// Disables OOP rasterization. Takes precedence over the enable flag.const char kDisableOopRasterization[] = "disable-oop-rasterization";// Turns on out of process raster for the renderer whenever gpu raster// would have been used. Enables the chromium_raster_transport extension. const char kEnableOopRasterization[] = "enable-oop-rasterization";// Turns on skia deferred display list for out of process raster.const char kEnableOopRasterizationDDL[] = "enable-oop-rasterization-ddl";// Enables WebGL overlays for Windows.const char kEnableWebGLSwapChain[] = "enable-webgl-swap-chain";。
FEATURE OVERVIEWUsing TRACE32 for IEC 62304TRACE32 for IEC 62304 at a Glance• TRACE32 Tool Qualification Support-Kit streamlines TRACE32 tool qualification effort and costs.• TRACE32 TQSK is fully featured, field proven and ready to cover new use casesand requirements.• TRACE32 TQSK Customer Interface provides full support and service around tool qualification.• All test suites run in the target environment and are fully multicore aware.• Test Suite Coverage includes statement, decision, condition, function and call coverage, as well as MC/DC.• TRACE32 Instruction Simulator, TRACE32 Debug and Trace Tools, USB Debug and Trace provide comprehensive tool support throughout all project phases.Website-LinksTRACE32 Trusted Tools for Functional Safety /trusted_tools.htmlTQSK Customer Portal /register_tqsk.htmlTRACE32 Code Coverage /coverage.htmlTRACE32 Instruction Set Simulator /sim.htmlThe TRACE32 Tool Qualification Support-Kit (TQSK) provides everything needed to qualify use in safety-related software projects.Figure 1: The 2-stage qualification processCertification ArtifactsDocumentsTest SuiteTool Verification and Validation Supplement for Integration toOperational EnvironmentTest Suite DocumentsTest ReportTesting in Operational EnvironmentTest Report Testing inTSSTCTest Suite Simulator TriCore(paid)DSMDeveloper SafetyManualTSCTest Suite Coverage(free)TSDTest Suite Debug(free)$$TSSATest Suite Simulator Arm(paid)Test Suite SimulatorUpon customer request, Lauterbach also provides test suites for its Arm and TriCore Instruction Set Simulators. A qualified instruction set simulator is an accepted test environment in the software module testing phase of the project (see also figure 3) and offers the following advantages:• Product software qualification can start before product hardware is available.• The qualification of the product software can be well organized even in a distributed team, becauseeverything necessary is purely software-based.• If bottlenecks occur during this phase due to a lack of development hardware or debug/trace tools, additional test benches can be easily equipped with simulators.Test Suite DebugThe Test Suite Debug includes all basic debugging functionality such as target configuration, programming onchip and NOR flashes, loading programs, setting breakpoints and reading/writing of memory and variables.Figure 3: TRACE32 tool use in code coverage qualification。
exceptionEXC_RESOURCE-WAKEUPS分析(⼆)⼀、问题: 直播助⼿在使⽤ReplayKit2 Extension的过程中,ReplayKit2的Upload进程⼯作在后台模式,苹果对处于后台的进程进⾏了内存和CPU资源的限制。
对于内存: 每种Extension的限制不同,ReplayKit2 Extension 的内存限制是 Active Memory limit = 50MB,如果使⽤的物理内存超过这个限制,将会被系统直接⼲掉。
(⼲掉之前会收到Memory Warning的警告) 对于CPU: 统计该进程⼀段时间内(300s)wakeup的次数,也就是线程切换调度的次数。
现象: 内存警告: 这个⽇志只能在Console中看到,对于⽤户⽽⾔,会收到⼀个弹框提⽰“某某进程中断” CPU使⽤过多的现象:Date/Time: 2018-09-20 14:59:44.493850 +0800OS Version: iPhone OS 11.4.1 (Build 15G77)Architecture: arm64Report Version: 19Command: LABroadcastUploadPath: /private/var/containers/Bundle/Application/62E054DE-ADDD-4955-BAA9-BD4C7A487B7F/LiveAssistant.app/PlugIns/LABroadcastUpload.appex/LABroadcastUploadVersion: 2.10.0 (2.10.0.11)Beta Identifier: DD6E7BB7-473A-4B7F-B5AF-CEC5E48FFE9EParent: launchd [1]PID: 437Event: wakeupsAction taken: noneWakeups: 45001 wakeups over the last 162 seconds (277 wakeups per second average), exceeding limit of 150 wakeups per second over 300 secondsWakeups limit: 45000Limit duration: 300sWakeups caused: 45001Duration: 162.23sSteps: 59Hardware model: iPhone9,2Active cpus: 2Powerstats for: LABroadcastUploa [437]UUID: 562B0868-A0CA-32D5-9E98-E87676053442Start time: 2018-09-20 15:01:39 +0800End time: 2018-09-20 15:02:26 +0800Parent: launchdMicrostackshots: 59 samples (100%)Primary state: 38 samples Frontmost App, User mode, Effective Thread QoS Default, Requested Thread QoS Default, Override Thread QoS UnspecifiedUser Activity: 0 samples Idle, 59 samples ActivePower Source: 0 samples on Battery, 59 samples on AC27 _pthread_wqthread + 859 (libsystem_pthread.dylib + 3696) [0x182167e70]24 _dispatch_workloop_worker_thread$VARIANT$mp + 667 (libdispatch.dylib + 86168) [0x181e48098]24 _dispatch_root_queue_drain_deferred_wlh$VARIANT$mp + 339 (libdispatch.dylib + 52424) [0x181e3fcc8]24 _dispatch_queue_invoke$VARIANT$mp + 335 (libdispatch.dylib + 49916) [0x181e3f2fc]12 _dispatch_queue_serial_drain$VARIANT$mp + 607 (libdispatch.dylib + 47540) [0x181e3e9b4]12 _dispatch_client_callout + 15 (libdispatch.dylib + 6752) [0x181e34a60]12 _dispatch_call_block_and_release + 23 (libdispatch.dylib + 6816) [0x181e34aa0]5 __59-[RPBroadcastSampleHandler _processPayloadWithVideoSample:]_block_invoke + 211 (ReplayKit + 57632) [0x19e0df120]4 -[RPBroadcastSampleHandler _sampleBufferFromIOSurface:timingInfo:] + 51 (ReplayKit + 58792) [0x19e0df5a8]4 CVPixelBufferCreateWithIOSurface + 1131 (CoreVideo + 43776) [0x1855efb00]2 IOSurfaceClientCopyAllValues + 503 (IOSurface + 16664) [0x183629118]2 unserializeReplacementIOKitTypeRef + 343 (IOSurface + 17196) [0x18362932c]2 CFDictionaryApplyFunction + 287 (CoreFoundation + 84836) [0x182411b64]2 CFBasicHashApply + 131 (CoreFoundation + 44952) [0x182407f98]2 __CFDictionaryApplyFunction_block_invoke + 23 (CoreFoundation + 146620) [0x182420cbc]2 unserializeReplacementDictionaryKeysAndValues + 31 (IOSurface + 29096) [0x18362c1a8]2 unserializeReplacementIOKitTypeRef + 343 (IOSurface + 17196) [0x18362932c]2 CFDictionaryApplyFunction + 287 (CoreFoundation + 84836) [0x182411b64]2 CFBasicHashApply + 131 (CoreFoundation + 44952) [0x182407f98]2 __CFDictionaryApplyFunction_block_invoke + 23 (CoreFoundation + 146620) [0x182420cbc]2 unserializeReplacementDictionaryKeysAndValues + 31 (IOSurface + 29096) [0x18362c1a8]2 unserializeReplacementIOKitTypeRef + 251 (IOSurface + 17104) [0x1836292d0]2 CFArrayApplyFunction + 79 (CoreFoundation + 46720) [0x182408680]2 unserializeReplacementArrayValues + 19 (IOSurface + 29176) [0x18362c1f8]2 unserializeReplacementIOKitTypeRef + 343 (IOSurface + 17196) [0x18362932c]2 CFDictionaryApplyFunction + 287 (CoreFoundation + 84836) [0x182411b64]2 CFBasicHashApply + 131 (CoreFoundation + 44952) [0x182407f98]2 __CFDictionaryApplyFunction_block_invoke + 23 (CoreFoundation + 146620) [0x182420cbc]2 unserializeReplacementDictionaryKeysAndValues + 51 (IOSurface + 29116) [0x18362c1bc]2 CFDictionaryGetValue + 223 (CoreFoundation + 21088) [0x182402260]2 CFBasicHashFindBucket + 207 (CoreFoundation + 21324) [0x18240234c]2 CFHash + 232 (CoreFoundation + 33616) [0x182405350]1 IOSurfaceClientCopyAllValues + 419 (IOSurface + 16580) [0x1836290c4]1 IOCFUnserializeBinary + 1083 (IOKit + 7704) [0x1827a7e18]1 CFDictionarySetValue + 331 (CoreFoundation + 30712) [0x1824047f8]1 CFBasicHashSetValue + 863 (CoreFoundation + 31668) [0x182404bb4]1 __CFStringEqual + 168 (CoreFoundation + 1047752) [0x1824fccc8]1 IOSurfaceClientCopyAllValues + 367 (IOSurface + 16528) [0x183629090]1 IOConnectCallMethod + 231 (IOKit + 24632) [0x1827ac038]1 io_connect_method + 415 (IOKit + 433080) [0x18280fbb8]1 mach_msg_trap + 8 (libsystem_kernel.dylib + 3560) [0x181fa7de8]1 <Kernel mode>1 -[RPBroadcastSampleHandler _sampleBufferFromIOSurface:timingInfo:] + 67 (ReplayKit + 58808) [0x19e0df5b8]1 CMVideoFormatDescriptionCreateForImageBuffer + 635 (CoreMedia + 157804) [0x1857d786c]1 CMVideoFormatDescriptionCreate + 107 (CoreMedia + 157032) [0x1857d7568]1 FigDerivedFormatDescriptionCreate + 415 (CoreMedia + 35360) [0x1857b9a20]1 CFPropertyListCreateDeepCopy + 915 (CoreFoundation + 292876) [0x18244480c]1 CFDictionaryCreate + 215 (CoreFoundation + 296564) [0x182445674]1 CFBasicHashCreate + 107 (CoreFoundation + 28916) [0x1824040f4]1 _CFRuntimeCreateInstance + 651 (CoreFoundation + 26056) [0x1824035c8]1 object_setClass + 100 (libobjc.A.dylib + 26484) [0x1816fa774]2 (LABroadcastUpload + 7320248) [0x102eef2b8]2 (LABroadcastUpload + 7322612) [0x102eefbf4]2 VTCompressionSessionEncodeFrame + 99 (VideoToolbox + 50016) [0x185ccf360]2 vtCompressionSessionRemote_EncodeFrameCommon + 247 (VideoToolbox + 313596) [0x185d0f8fc]2 FigRemote_CreateSerializedAtomDataForPixelBuffer + 31 (CoreMedia + 1105980) [0x1858bf03c]2 FigRemote_CreateSerializedAtomDataAndSurfaceForPixelBuffer + 267 (CoreMedia + 1106372) [0x1858bf1c4]2 sbufAtom_createSerializedDataForPixelBuffer + 547 (CoreMedia + 1107144) [0x1858bf4c8]2 sbufAtom_appendAtomWithMemoryBlock + 95 (CoreMedia + 1115024) [0x1858c1390]2 FigNEAtomWriterAppendData + 91 (CoreMedia + 1115568) [0x1858c15b0]2 _platform_memmove + 96 (libsystem_platform.dylib + 6704) [0x18215ea30]2 <Kernel mode>1 __64-[RPBroadcastSampleHandler _processPayloadWithAudioSample:type:]_block_invoke + 487 (ReplayKit + 58596) [0x19e0df4e4]1 mvm_deallocate_pages + 75 (libsystem_malloc.dylib + 58880) [0x18200c600]1 _kernelrpc_mach_vm_deallocate_trap + 8 (libsystem_kernel.dylib + 3356) [0x181fa7d1c]1 <Kernel mode>1 (LABroadcastUpload + 344176) [0x102848070]1 (LABroadcastUpload + 346144) [0x102848820]1 (LABroadcastUpload + 697624) [0x10289e518]1 (LABroadcastUpload + 9076476) [0x10309befc]1 _dispatch_queue_barrier_sync_invoke_and_complete + 55 (libdispatch.dylib + 42428) [0x181e3d5bc]1 _dispatch_client_callout + 15 (libdispatch.dylib + 6752) [0x181e34a60]1 (LABroadcastUpload + 9077740) [0x10309c3ec]1 (LABroadcastUpload + 9055864) [0x103096e78]1 (LABroadcastUpload + 9044532) [0x103094234]1 (LABroadcastUpload + 9043328) [0x103093d80]1 AudioConverterFillComplexBuffer + 963 (AudioToolbox + 3332076) [0x18639d7ec]1 BufferedAudioConverter::FillBuffer + 803 (AudioToolbox + 57712) [0x18607e170]1 AudioConverterChain::RenderOutput + 119 (AudioToolbox + 56784) [0x18607ddd0]1 CodecConverter::EncoderFillBuffer + 1059 (AudioToolbox + 2281600) [0x18629d080]1 ProduceOutputPackets + 27 (AudioCodecs + 33200) [0x1a2b2a1b0]1 ACMP4AACBaseEncoder::ProduceOutputPackets + 231 (AudioCodecs + 894872) [0x1a2bfc798]1 AACEncoder::EncodeFrame + 515 (AudioCodecs + 445952) [0x1a2b8ee00]1 aacEncodeFrame + 339 (AudioCodecs + 670340) [0x1a2bc5a84]1 AdvanceLoopKernel + 1099 (AudioCodecs + 164132) [0x1a2b4a124]1 calcBitrateNMR + 83 (AudioCodecs + 168336) [0x1a2b4b190]1 EvaluateLoopChannel + 95 (AudioCodecs + 21796) [0x1a2b27524]1 InvQuantizeAndEvaluateSpectrum_Neon + 184 (AudioCodecs + 1261244) [0x1a2c55ebc]1 invocation function for block in __CFURLCache::CreateAndStoreCacheNode + 2003 (CFNetwork + 493812) [0x182b3e8f4]1 -[NSURLStorage_CacheClient addCachedResponseWithDictionary:key:] + 131 (CFNetwork + 905132) [0x182ba2fac]1 _NSXPCDistantObjectSimpleMessageSend2 + 63 (Foundation + 2355548) [0x1830b415c]1 -[NSXPCConnection _sendSelector:withProxy:arg1:arg2:] + 135 (Foundation + 228044) [0x182eacacc]1 -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:] + 1763 (Foundation + 71044) [0x182e86584]1 -[NSXPCInterface _interfaceForArgument:ofSelector:reply:] + 231 (Foundation + 73480) [0x182e86f08]1 -[NSObject isKindOfClass:] + 32 (libobjc.A.dylib + 157520) [0x18171a750]1 <Effective Thread QoS Background, Requested Thread QoS Background>1 (LABroadcastUpload + 444760) [0x102860958]1 __59-[RPBroadcastSampleHandler _processPayloadWithVideoSample:]_block_invoke + 307 (ReplayKit + 57728) [0x19e0df180]1 (LABroadcastUpload + 444964) [0x102860a24]1 (LABroadcastUpload + 426324) [0x10285c154]1 (LABroadcastUpload + 426576) [0x10285c250]1 (LABroadcastUpload + 419812) [0x10285a7e4]1 (LABroadcastUpload + 415888) [0x102859890]1 (LABroadcastUpload + 410632) [0x102858408]1 (LABroadcastUpload + 410268) [0x10285829c]1 +[NSString stringWithUTF8String:] + 147 (Foundation + 28888) [0x182e7c0d8]1 CFStringCreateWithBytes + 43 (CoreFoundation + 30368) [0x1824046a0]1 __CFStringCreateImmutableFunnel3 + 1787 (CoreFoundation + 1053888) [0x1824fe4c0]1 __CFSearchStringROM + 104 (CoreFoundation + 610268) [0x182491fdc]10 _dispatch_queue_serial_drain$VARIANT$mp + 279 (libdispatch.dylib + 47212) [0x181e3e86c]8 _dispatch_mach_invoke$VARIANT$mp + 507 (libdispatch.dylib + 102124) [0x181e4beec]8 _dispatch_queue_serial_drain$VARIANT$mp + 279 (libdispatch.dylib + 47212) [0x181e3e86c]8 _dispatch_mach_msg_invoke$VARIANT$mp + 351 (libdispatch.dylib + 99392) [0x181e4b440]8 _dispatch_client_callout4 + 15 (libdispatch.dylib + 6960) [0x181e34b30]6 _xpc_connection_mach_event + 983 (libxpc.dylib + 10436) [0x1821a08c4]6 _xpc_connection_call_event_handler + 67 (libxpc.dylib + 20272) [0x1821a2f30]5 message_handler + 239 (Foundation + 355008) [0x182ecbac0]2 -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 407 (Foundation + 212724) [0x182ea8ef4]2 -[NSXPCDecoder _decodeMessageFromXPCObject:allowingSimpleMessageSend:outInvocation:outArguments:outArgumentsMaxCount:outMethodSignature:outSelector:interface:] + 39 (Foundation + 217648) [0x182eaa230 2 -[NSXPCDecoder __decodeXPCObject:allowingSimpleMessageSend:outInvocation:outArguments:outArgumentsMaxCount:outMethodSignature:outSelector:isReply:replySelector:interface:] + 1959 (Foundation + 82700) [0x 2 _NSXPCSerializationDecodeInvocationObjectOnlyArgumentArray + 523 (Foundation + 2516308) [0x1830db554]2 -[NSXPCDecoder _decodeObjectOfClasses:atObject:] + 131 (Foundation + 83796) [0x182e89754]2 _decodeObject + 1023 (Foundation + 2326612) [0x1830ad054]1 -[NSDictionary initWithCoder:] + 327 (Foundation + 181160) [0x182ea13a8]1 -[NSDictionary initWithObjects:forKeys:] + 263 (CoreFoundation + 427020) [0x18246540c]1 _platform_memset + 232 (libsystem_platform.dylib + 7656) [0x18215ede8]1 -[NSDictionary initWithCoder:] + 251 (Foundation + 181084) [0x182ea135c]1 -[NSXPCDecoder _decodeArrayOfObjectsForKey:] + 195 (Foundation + 212284) [0x182ea8d3c]1 _NSXPCSerializationIterateArrayObject + 179 (Foundation + 373240) [0x182ed01f8]1 __44-[NSXPCDecoder _decodeArrayOfObjectsForKey:]_block_invoke + 35 (Foundation + 373364) [0x182ed0274]1 _decodeObject + 507 (Foundation + 2326096) [0x1830ace50]1 _NSXPCSerializationStringForObject + 39 (Foundation + 373576) [0x182ed0348]1 _getStringAtMarker + 351 (Foundation + 373960) [0x182ed04c8]1 CFStringCreateWithCharacters + 55 (CoreFoundation + 170392) [0x182426998]1 __CFStringCreateImmutableFunnel3 + 2023 (CoreFoundation + 1054124) [0x1824fe5ac]1 _CFRuntimeCreateInstance + 299 (CoreFoundation + 25704) [0x182403468]1 malloc_zone_malloc + 159 (libsystem_malloc.dylib + 5596) [0x181fff5dc]1 nano_malloc + 43 (libsystem_malloc.dylib + 76192) [0x1820109a0]1 OSAtomicDequeue$VARIANT$mp + 24 (libsystem_platform.dylib + 26896) [0x182163910]2 -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 2427 (Foundation + 214744) [0x182ea96d8]2 __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S2__ + 19 (Foundation + 2316640) [0x1830aa960]1 -[RPBroadcastSampleHandler processPayload:completion:] + 95 (ReplayKit + 59156) [0x19e0df714]1 __58-[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:]_block_invoke + 155 (Foundation + 2312336) [0x1830a9890]1 -[_NSXPCConnectionRequestedReplies endTransactionForSequence:completionHandler:] + 211 (Foundation + 2353748) [0x1830b3a54]1 _sendReplyArgumentsOnly + 307 (Foundation + 2312688) [0x1830a99f0]1 _xpc_dispose + 63 (libxpc.dylib + 9008) [0x1821a0330]1 _xpc_serializer_dispose + 347 (libxpc.dylib + 11712) [0x1821a0dc0]1 _dispatch_dispose$VARIANT$mp + 95 (libdispatch.dylib + 14336) [0x181e36800]1 objc_destructInstance + 139 (libobjc.A.dylib + 84440) [0x1817089d8]1 objc_object::sidetable_clearDeallocating + 76 (libobjc.A.dylib + 153348) [0x181719704]1 -[RPBroadcastSampleHandler processPayload:completion:] + 75 (ReplayKit + 59136) [0x19e0df700]1 -[RPBroadcastSampleHandler _processPayload:] + 231 (ReplayKit + 56588) [0x19e0ded0c]1 -[RPBroadcastSampleHandler _processPayloadWithVideoSample:] + 139 (ReplayKit + 57376) [0x19e0df020]1 _dispatch_event_loop_poke$VARIANT$mp + 427 (libdispatch.dylib + 117656) [0x181e4fb98]1 kevent_id + 8 (libsystem_kernel.dylib + 145340) [0x181fca7bc]1 <Kernel mode>1 -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 1819 (Foundation + 214136) [0x182ea9478]1 +[NSMethodSignature signatureWithObjCTypes:] + 199 (CoreFoundation + 176656) [0x182428210]1 CFDictionaryGetValue + 223 (CoreFoundation + 21088) [0x182402260]1 CFBasicHashFindBucket + 431 (CoreFoundation + 21548) [0x18240242c]1 typeStringEqual + 11 (CoreFoundation + 178768) [0x182428a50]1 _platform_strcmp + 188 (libsystem_platform.dylib + 5452) [0x18215e54c]1 ::AutoreleasePoolPage::pop(void*) + 843 (libobjc.A.dylib + 155964) [0x18171a13c]1 objc_object::release + 80 (libobjc.A.dylib + 153652) [0x181719834]2 _xpc_connection_mach_event + 963 (libxpc.dylib + 10416) [0x1821a08b0]2 _xpc_connection_unpack_message + 99 (libxpc.dylib + 15492) [0x1821a1c84]2 _xpc_serializer_unpack + 755 (libxpc.dylib + 16548) [0x1821a20a4]2 _xpc_dictionary_deserialize + 111 (libxpc.dylib + 21740) [0x1821a34ec]1 _xpc_dictionary_wire_length + 0 (libxpc.dylib + 17456) [0x1821a2430]1 _xpc_dictionary_apply_wire_f + 547 (libxpc.dylib + 19512) [0x1821a2c38]1 _xpc_dictionary_deserialize_apply + 47 (libxpc.dylib + 21828) [0x1821a3544]1 _xpc_array_deserialize + 103 (libxpc.dylib + 21220) [0x1821a32e4]1 _os_object_alloc_realized + 39 (libdispatch.dylib + 6872) [0x181e34ad8]1 class_createInstance + 75 (libobjc.A.dylib + 83920) [0x1817087d0]1 calloc + 39 (libsystem_malloc.dylib + 16224) [0x182001f60]1 malloc_zone_calloc + 80 (libsystem_malloc.dylib + 16340) [0x182001fd4]2 _dispatch_continuation_pop$VARIANT$mp + 423 (libdispatch.dylib + 40596) [0x181e3ce94]2 _dispatch_client_callout + 15 (libdispatch.dylib + 6752) [0x181e34a60]1 dispatch_mig_server$VARIANT$mp + 499 (libdispatch.dylib + 106240) [0x181e4cf00]1 vtcompressionsessioncallback_server + 95 (VideoToolbox + 561740) [0x185d4c24c]1 _XFrameIsPending + 51 (VideoToolbox + 561400) [0x185d4c0f8]1 VTCompressionSessionRemoteCallbackServer_FrameIsPending + 35 (VideoToolbox + 320396) [0x185d1138c]1 vtcsr_dequeueAllPendingFramesAndCallbackClientForEach + 119 (VideoToolbox + 310840) [0x185d0ee38]1 _dispatch_event_loop_poke$VARIANT$mp + 427 (libdispatch.dylib + 117656) [0x181e4fb98]1 kevent_id + 8 (libsystem_kernel.dylib + 145340) [0x181fca7bc]1 <Kernel mode>1 __nw_channel_create_block_invoke + 51 (libsystem_network.dylib + 187176) [0x182047b28]1 nw_channel_update_input_source + 135 (libsystem_network.dylib + 189232) [0x182048330]1 nw_channel_add_input_frames + 4327 (libsystem_network.dylib + 193660) [0x18204947c]1 tcp_input_flush + 83 (libusrtcp.dylib + 273224) [0x18360ab48]1 nw_protocol_tcp_wake_read + 459 (libusrtcp.dylib + 106488) [0x1835e1ff8]1 ConnectionProtocolInputAvailable + 63 (CFNetwork + 2369112) [0x182d08658]1 ConnectionProtocolServiceReads + 379 (CFNetwork + 2365028) [0x182d07664]1 ConnectionProtocolReadInner block_pointer, void (nw_frame_array_s*, CFStreamError) block_pointer) + 987 (CFNetwork + 2366192) [0x182d07af0] 1 TCPIOConnection::readCompleted block_pointer) + 323 (CFNetwork + 1711772) [0x182c67e9c]1 HTTPEngine::_readHeadersDoParse + 299 (CFNetwork + 2267088) [0x182cef7d0]1 invocation function for block in HTTPEngine::_readHeadersDoParse + 39 (CFNetwork + 2269244) [0x182cf003c]1 HTTPMessage::appendBytes + 47 (CFNetwork + 857260) [0x182b974ac]1 HTTPParser::parse + 387 (CFNetwork + 2101944) [0x182cc72b8]1 HTTPParser::commitAccumulatedLine + 91 (CFNetwork + 2101512) [0x182cc7108]1 HTTPParser::commitHeaderLine + 147 (CFNetwork + 2101280) [0x182cc7020]1 HTTPHeaderKeyMixedValue::HTTPHeaderKeyMixedValue + 80 (CFNetwork + 859804) [0x182b97e9c]2 _dispatch_queue_serial_drain$VARIANT$mp + 723 (libdispatch.dylib + 47656) [0x181e3ea28]2 _dispatch_event_loop_drain$VARIANT$mp + 323 (libdispatch.dylib + 118916) [0x181e50084]2 _dispatch_kq_drain + 107 (libdispatch.dylib + 119068) [0x181e5011c]2 kevent_id + 8 (libsystem_kernel.dylib + 145340) [0x181fca7bc]2 <Kernel mode>3 _dispatch_workloop_worker_thread$VARIANT$mp + 491 (libdispatch.dylib + 85992) [0x181e47fe8]2 _dispatch_mach_merge_msg$VARIANT$mp + 0 (libdispatch.dylib + 91668) [0x181e49614]1 _dispatch_event_loop_merge$VARIANT$mp + 131 (libdispatch.dylib + 119388) [0x181e5025c]1 _dispatch_mach_merge_msg$VARIANT$mp + 127 (libdispatch.dylib + 91796) [0x181e49694]1 _voucher_create_with_mach_voucher + 219 (libdispatch.dylib + 134296) [0x181e53c98]1 _os_object_alloc_realized + 39 (libdispatch.dylib + 6872) [0x181e34ad8]1 class_createInstance + 75 (libobjc.A.dylib + 83920) [0x1817087d0]1 calloc + 39 (libsystem_malloc.dylib + 16224) [0x182001f60]1 malloc_zone_calloc + 167 (libsystem_malloc.dylib + 16428) [0x18200202c]1 nano_calloc + 79 (libsystem_malloc.dylib + 76316) [0x182010a1c]1 OSAtomicDequeue$VARIANT$mp + 24 (libsystem_platform.dylib + 26896) [0x182163910]25 _pthread_start + 291 (libsystem_pthread.dylib + 8464) [0x182169110]25 _pthread_body + 271 (libsystem_pthread.dylib + 8736) [0x182169220]22 __NSThread__start__ + 1039 (Foundation + 1150716) [0x182f8defc]21 (LABroadcastUpload + 699360) [0x10289ebe0]21 (LABroadcastUpload + 579692) [0x10288186c]21 (LABroadcastUpload + 438420) [0x10285f094]13 (LABroadcastUpload + 340072) [0x102847068]7 (LABroadcastUpload + 271384) [0x102836418]4 (LABroadcastUpload + 369892) [0x10284e4e4]1 <Override Thread QoS Default>3 (LABroadcastUpload + 369920) [0x10284e500]1 <Override Thread QoS Default>6 (LABroadcastUpload + 271460) [0x102836464]4 (LABroadcastUpload + 369904) [0x10284e4f0]2 <Kernel mode>2 <Override Thread QoS Default>2 (LABroadcastUpload + 369892) [0x10284e4e4]4 (LABroadcastUpload + 339528) [0x102846e48]3 (LABroadcastUpload + 339512) [0x102846e38]1 (LABroadcastUpload + 339516) [0x102846e3c]1 (LABroadcastUpload + 699248) [0x10289eb70]1 (LABroadcastUpload + 704568) [0x1028a0038]1 objc_loadWeakRetained + 148 (libobjc.A.dylib + 150444) [0x181718bac]3 (LABroadcastUpload + 8371680) [0x102fefde0]3 (LABroadcastUpload + 8334892) [0x102fe6e2c]3 (LABroadcastUpload + 8334068) [0x102fe6af4]3 (LABroadcastUpload + 8390348) [0x102ff46cc]3 (LABroadcastUpload + 8449800) [0x103002f08]3 (LABroadcastUpload + 8382704) [0x102ff28f0]3 (LABroadcastUpload + 8386660) [0x102ff3864]3 -[NSRunLoop runMode:beforeDate:] + 303 (Foundation + 34420) [0x182e7d674]3 CFRunLoopRunSpecific + 551 (CoreFoundation + 48552) [0x182408da8]3 __CFRunLoopRun + 1203 (CoreFoundation + 964508) [0x1824e879c]3 __CFRunLoopDoSources0 + 275 (CoreFoundation + 973868) [0x1824eac2c]3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 23 (CoreFoundation + 975876) [0x1824eb404]3 (LABroadcastUpload + 8383980) [0x102ff2dec]3 (LABroadcastUpload + 8385160) [0x102ff3288]3 (LABroadcastUpload + 8451264) [0x1030034c0]3 (LABroadcastUpload + 8450596) [0x103003224]3 (LABroadcastUpload + 8450400) [0x103003160]3 (LABroadcastUpload + 8464936) [0x103006a28]3 (LABroadcastUpload + 8326176) [0x102fe4c20]2 (LABroadcastUpload + 8629576) [0x10302ed48]2 (LABroadcastUpload + 8936172) [0x103079aec]2 (LABroadcastUpload + 8964452) [0x103080964]2 (LABroadcastUpload + 8458888) [0x103005288]2 (LABroadcastUpload + 8444952) [0x103001c18]2 <Effective Thread QoS Unspecified, Requested Thread QoS Unspecified>1 (LABroadcastUpload + 8629644) [0x10302ed8c]1 (LABroadcastUpload + 8363040) [0x102fedc20]1 free + 0 (libsystem_malloc.dylib + 13756) [0x1820015bc]1 <Effective Thread QoS Unspecified, Requested Thread QoS Unspecified>7 _pthread_wqthread + 1175 (libsystem_pthread.dylib + 4012) [0x182167fac]7 _dispatch_worker_thread3 + 119 (libdispatch.dylib + 59900) [0x181e419fc]6 _dispatch_root_queue_drain + 923 (libdispatch.dylib + 60924) [0x181e41dfc]6 _dispatch_client_callout + 15 (libdispatch.dylib + 6752) [0x181e34a60]6 _dispatch_call_block_and_release + 23 (libdispatch.dylib + 6816) [0x181e34aa0]6 (LABroadcastUpload + 4247616) [0x102c01040]3 (LABroadcastUpload + 4256256) [0x102c03200]3 usleep + 63 (libsystem_c.dylib + 53324) [0x181ee204c]2 nanosleep + 211 (libsystem_c.dylib + 53548) [0x181ee212c]2 __semwait_signal + 23 (libsystem_kernel.dylib + 140820) [0x181fc9614]2 _pthread_exit_if_canceled + 0 (libsystem_pthread.dylib + 7012) [0x182168b64]1 __semwait_signal + 8 (libsystem_kernel.dylib + 140804) [0x181fc9604]1 <Kernel mode>2 (LABroadcastUpload + 4256168) [0x102c031a8]2 (LABroadcastUpload + 4205132) [0x102bf6a4c]2 (LABroadcastUpload + 11458408) [0x1032e1768]1 (LABroadcastUpload + 4256300) [0x102c0322c]1 (LABroadcastUpload + 4317016) [0x102c11f58]1 (LABroadcastUpload + 4316564) [0x102c11d94]1 (LABroadcastUpload + 8245184) [0x102fd0fc0]1 (LABroadcastUpload + 8629048) [0x10302eb38]1 (LABroadcastUpload + 8364372) [0x102fee154]1 (LABroadcastUpload + 8364204) [0x102fee0ac]1 (LABroadcastUpload + 8402332) [0x102ff759c]1 __psynch_cvwait + 8 (libsystem_kernel.dylib + 139496) [0x181fc90e8]1 <Kernel mode>1 _dispatch_root_queue_drain + 587 (libdispatch.dylib + 60588) [0x181e41cac]1 _dispatch_source_invoke$VARIANT$mp + 1363 (libdispatch.dylib + 79748) [0x181e46784]1 _dispatch_client_callout + 15 (libdispatch.dylib + 6752) [0x181e34a60]1 (LABroadcastUpload + 560800) [0x10287cea0]1 (LABroadcastUpload + 562864) [0x10287d6b0]1 (LABroadcastUpload + 599716) [0x1028866a4]1 (LABroadcastUpload + 615308) [0x10288a38c]1 (LABroadcastUpload + 8300024) [0x102fde5f8]1 (LABroadcastUpload + 8291616) [0x102fdc520]1 (LABroadcastUpload + 8296568) [0x102fdd878]1 (LABroadcastUpload + 8220012) [0x102fcad6c]1 (LABroadcastUpload + 8204516) [0x102fc70e4]1 (LABroadcastUpload + 8205116) [0x102fc733c]1 SecItemCopyMatching + 339 (Security + 463608) [0x1831df2f8]1 SecOSStatusWith + 51 (Security + 454740) [0x1831dd054]1 __SecItemCopyMatching_block_invoke + 119 (Security + 468436) [0x1831e05d4]1 SecItemAuthDoQuery + 519 (Security + 462564) [0x1831deee4]1 SecItemAuthDo + 419 (Security + 460160) [0x1831de580]1 __SecItemAuthDoQuery_block_invoke + 323 (Security + 465572) [0x1831dfaa4]1 __SecItemCopyMatching_block_invoke_2 + 215 (Security + 468664) [0x1831e06b8]1 securityd_send_sync_and_do + 79 (Security + 47184) [0x183179850]1 securityd_message_with_reply_sync + 167 (Security + 46340) [0x183179504]1 xpc_connection_send_message_with_reply_sync + 195 (libxpc.dylib + 26104) [0x1821a45f8]1 dispatch_mach_send_with_result_and_wait_for_reply$VARIANT$mp + 55 (libdispatch.dylib + 97580) [0x181e4ad2c]1 _dispatch_mach_send_and_wait_for_reply + 559 (libdispatch.dylib + 96308) [0x181e4a834]1 mach_msg_trap + 8 (libsystem_kernel.dylib + 3560) [0x181fa7de8]1 <Kernel mode>Binary Images:0x1027f4000 - com.tencent.liveassistant.dailybuild.db.broadcastupload 2.10.0 (2.10.0.11) <562B0868-A0CA-32D5-9E98-E87676053442> /private/var/containers/Bundle/Application/62E054DE-ADDD-4955-BAA9-BD4C7A487B 0x1816f4000 - 0x181daffff libobjc.A.dylib <EB1135B2-BDE9-3B69-B96E-42CA98200183> /usr/lib/libobjc.A.dylib0x181e33000 - 0x181e98fff libdispatch.dylib <0C931AC7-6013-3DE1-87BB-6F440BEED5EB> /usr/lib/system/libdispatch.dylib0x181ed5000 - 0x181f52fff libsystem_c.dylib <61D2E950-ADD7-3139-AEA4-59B55997EA48> /usr/lib/system/libsystem_c.dylib0x181fa7000 - 0x181fcffff libsystem_kernel.dylib <E102701E-F880-3CD4-A5D5-4F5F14433DBD> /usr/lib/system/libsystem_kernel.dylib0x181ffe000 - 0x182019fff libsystem_malloc.dylib <6DD6981A-DEF5-30B3-B606-2F29ADE13BB2> /usr/lib/system/libsystem_malloc.dylib0x18201a000 - 0x182145fff libsystem_network.dylib <9EC043D8-CB25-38DC-9BA8-4E324CD5B416> /usr/lib/system/libsystem_network.dylib0x18215d000 - 0x182166fff libsystem_platform.dylib <97DAE109-BAD6-3E58-8E5D-63B8DBDDADCF> /usr/lib/system/libsystem_platform.dylib0x182167000 - 0x182176fff libsystem_pthread.dylib <07C87E38-74B7-3D12-8F0F-A331D8894B97> /usr/lib/system/libsystem_pthread.dylib0x18219e000 - 0x1821c8fff libxpc.dylib <05E40D46-2111-3A32-A4CD-B7AFC770B119> /usr/lib/system/libxpc.dylib0x1823fd000 - 0x182793fff com.apple.CoreFoundation 6.9 (1452.23) <533C841E-D6E9-313D-8ADB-02388744E2EF> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation0x1827a6000 - 0x18282afff com.apple.framework.IOKit 2.0.2 <54433B44-779D-3937-8D07-89A4017A2948> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit0x182ac6000 - 0x182e74fff com.apple.CFNetwork 902.2 (902.2) <CE119938-B410-382B-B448-1E599405EF23> /System/Library/Frameworks/CFNetwork.framework/CFNetwork0x182e75000 - 0x18316dfff com.apple.Foundation 6.9 (1452.23) <2EACEF3C-B1E5-323E-AC1A-2E0D743C81A5> /System/Library/Frameworks/Foundation.framework/Foundation0x18316e000 - 0x18326ffff com.apple.Security 10.0 (58286.70.7) <B4A51FC3-CB16-3F7B-8786-D8D37B56E515> /System/Library/Frameworks/Security.framework/Security0x1835c8000 - 0x183624fff libusrtcp.dylib <BA4A0D2E-24DD-3EA0-A930-7B03598564CC> /usr/lib/libusrtcp.dylib0x183625000 - 0x18362ffff com.apple.IOSurface 211.14 (211.14) <1F24B805-6501-3F8D-94B5-E18C144F24BC> /System/Library/Frameworks/IOSurface.framework/IOSurface0x1855e5000 - 0x18560efff com.apple.CoreVideo 1.8 (0.0) <6F568461-BB21-3003-BCF5-26D9D4EB20AF> /System/Library/Frameworks/CoreVideo.framework/CoreVideo0x1857b1000 - 0x185936fff com.apple.CoreMedia 1.0 (2276.71.2) <784A7889-8519-3F92-BCBF-5170378405FC> /System/Library/Frameworks/CoreMedia.framework/CoreMedia0x185cc3000 - 0x185d7afff com.apple.VideoToolbox 1.0 (2276.71.2) <C99ED6C9-2850-3FD6-9ECF-34BA2BAECE4E> /System/Library/Frameworks/VideoToolbox.framework/VideoToolbox0x186070000 - 0x1865a8fff com.apple.audio.toolbox.AudioToolbox 1.8 (1.8) <082E0192-9022-3EDF-99B1-D4FF195F9276> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox0x19e0d1000 - 0x19e0f5fff com.apple.ReplayKit 1.0 (1) <9B0FE0DA-9DDA-3347-9586-717BC1304DFE> /System/Library/Frameworks/ReplayKit.framework/ReplayKit0x1a2b22000 - 0x1a2f60fff AudioCodecs <1BA749E0-2C9E-3C99-94C3-9295C0688017> /System/Library/Frameworks/AudioToolbox.framework/AudioCodecs⼆、问题分析 对于内存问题,⽬前尚⽆好的解决办法,苹果似乎在系统升级之后会调⾼限制的⼤⼩值,但是不多,不能解决根本问题。
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.resource. IProN, locale zh_CNat java.util.ResourceBundle.throwMissingResourceException(Unknown Source)at java.util.ResourceBundle.getBundleImpl(Unknown Source)at java.util.ResourceBundle.getBundle(Unknown Source)at synalarm.resource. IProN.<clinit>(IProN.java:16)Caused by: ng.ClassCastException: com.resource.IProN cannot be cast to ResourceBundleat java.util.ResourceBundle$Control.newBundle(Unknown Source)at java.util.ResourceBundle.loadBundle(Unknown Source)at java.util.ResourceBundle.findBundle(Unknown Source)at java.util.ResourceBundle.findBundle(Unknown Source)at java.util.ResourceBundle.findBundle(Unknown Source)... 3 moreException in thread "main"源代码包结构,配置文件和java文件在同一个包下comresourceIProN.javaIProN.properties部分源代码:Public class IProN{private static final String BUNDLE_NAME = "com.resource. IProN ";private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);}在做项目时,用到了java.util.ResourceBundle。