关于crash:iOS-从没有转换符号的crash日志里精准定位错误代码

如何在没有符号的crash日志里定位错误代码,这的联合crash日志,和iDA能查看.首先咱们来剖析一下crash日志的构造1.首先看到图中的crash日志堆栈信息的0x102920000示意是mach-o的入口地址,+299612示意是mach-o里的偏移地址,转换成16进制为0x4925c 图一2.在ida中查看0x4925c的地址所在汇编代码:是main里的代码 图二这和复原符号之后的代码齐全吻合: 图三3.别急下面的crash代码只是一部分,咱们来还原真正的crash代码,last exception Backtrace ,咱们要找到堆栈信息里属于以后app的地址.@1.第一步确定MTSS_SDKTestDemo在内存中的地址范畴,crash日志下拉到Binary Images段,查看得悉地址范畴为0x102920000~0x102c57fff @2.找到last exception Backtrace中在0x102920000~0x102c57fff范畴的地址,计算出他们的偏移量0x1029682c8 - 0x102920000 -> 0x482C80x10297c3b4 - 0x102920000 -> 0x5C3B40x10297c09c - 0x102920000 -> 0x5C09C0x102977564 - 0x102920000 -> 0x57564 0x482C8在ida查看为,定位到为+[SignalCrashTest throwNil]办法中执行字典赋值导致的nil解体

June 14, 2022 · 1 min · jiezi

关于crash:故障分析-MySQL-slavecompressedprotocol-导致-crash

作者:胡呈清 爱可生 DBA 团队成员,善于故障剖析、性能优化,集体博客:https://www.jianshu.com/u/a95...,欢送探讨。 本文起源:原创投稿 *爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。 景象MySQL版本:8.0.18 create.sql:zabbix 初始化脚本,蕴含建表、插入数据语句,10M+大小 一个新客户,部署了一套我司的数据库治理平台,接管进来一主两从实例,其中一主一从在无锡机房,为半同步复制,另一个从库在北京机房,为异步复制。当在主库上 source create.sql 时,会 crash。但没接管进平台前,不会呈现 crash。 阐明:这里提到的治理平台,不会影响了解整篇文章。 排查过程1. 在测试环境进行复现为不便排查,须要在可控的环境下进行复现: 与客户雷同的 my.cnf雷同的 MySQL 版本雷同的复制架构执行雷同的 create.sql的确能够稳固复现 crash,error log 如下: 2020-04-28T17:51:47.441886+08:00 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001158 - Got an error reading communication packets 09:51:47 UTC - mysqld got signal 11 ; ...

December 28, 2021 · 4 min · jiezi

大侦探福老师幽灵Crash谜踪案

闲鱼Flutter技术的基础设施已基本趋于稳定,就在我们准备松口气的时候,一个Crash却异军突起冲击着我们的稳定性防线!闲鱼技术火速成立侦探小组执行嫌犯侦查行动,经理重重磨难终于在一个隐蔽的角落将其绳之以法! 幽灵Crash问题要从闲鱼Flutter基础设施上一次大规模升级说起。2018年我们对闲鱼的Flutter基建作了比较大的重构,目标在于提高基建的稳定性和可扩展性。这个过程当然是挑战重重,在上一次大规模的重构集成发版后,我们虽然没有发现非常明显的异常问题,但是Crash率却出现了一个比较明显的增长。虽然总体数值还在可控范围之内,但这一个Crash却占据了几乎一大半。这个问题引起了我们警觉,我们立刻成立专项小组重点进行排查。 一般Crash Log能够为我们定位Crash提供主要信息,我们一起看看这个Crash的Log: Thread 0 Crashed:0 libobjc.A.dylib 0x00000001c1b42b00 objc_object::release() :16 (in libobjc.A.dylib)1 libobjc.A.dylib 0x00000001c1b4338c (anonymous namespace)::AutoreleasePoolPage::pop(void*) :676 (in libobjc.A.dylib)2 CoreFoundation 0x00000001c28e8804 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ :28 (in CoreFoundation)3 CoreFoundation 0x00000001c28e8534 __CFRunLoopDoTimer :864 (in CoreFoundation)4 CoreFoundation 0x00000001c28e7d68 __CFRunLoopDoTimers :248 (in CoreFoundation)5 CoreFoundation 0x00000001c28e2c44 __CFRunLoopRun :1880 (in CoreFoundation)6 CoreFoundation 0x00000001c28e21cc _CFRunLoopRunSpecific :436 (in CoreFoundation)7 GraphicsServices 0x00000001c4b59584 _GSEventRunModal :100 (in GraphicsServices)8 UIKitCore 0x00000001efb59054 _UIApplicationMain :212 (in UIKitCore)9 Runner 0x0000000102df4eb4 main main.m:49 (in Runner)10 libdyld.dylib 0x00000001c23a2bb4 _start :4 (in libdyld.dylib)这是一个很典型的野指针Crash Log,是其中一种俗称的Over released问题。但是具体是哪个对象和方法,很难直接从Log上面得知,况且ARC下面的野指针更令人费解。 ...

May 10, 2019 · 2 min · jiezi