/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġdev . icer ock . mo ko . crash reporting . core Ċ Ċ // ĠBased Ġon ĠTouch lab ĠCrash K iOS Ġ( https :// github . com / touch lab / Crash K iOS ) Ċ Ċ fun ĠCrash Reporting Core . get StackTrace ( throwable : ĠThrowable ): ĠList < Long > Ġ{ ĊĊĠĠĠ Ġval Ġaddresses : ĠList < Long > Ġ= Ġthrowable . get StackTrace Addresses () ĊĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠ Ġval Ġstack Trace Ġ= Ġthrowable . get StackTrace () ĊĠĠĠ Ġfor Ġ( element Ġin Ġstack Trace ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( throwable Bo ilerplate ( element , Ġ" Exception ") Ġ|| Ġthrowable Bo ilerplate ( element , Ġ" Throwable ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġaddresses . sub List ( index , Ġaddresses . size ) Ċ } Ċ Ċ private Ġfun Ġthrowable Bo ilerplate ( frame String : ĠString , Ġlook For : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġframe String . contains (" kotlin .$ look For ") Ġ|| Ġframe String . contains ("$ look For .< init >") Ċ } Ċ