mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-24 20:00:37 +00:00
docs: APM 监控部分
This commit is contained in:
@@ -34,4 +34,28 @@ Thread 12 Crashed:
|
||||
为了搞懂这种 Crash,这篇文章就诞生了.
|
||||
|
||||
|
||||
##
|
||||
## crash 后的 backtrace 符号化
|
||||
|
||||
iOS 的奔溃日志结合 dsym 文件可以找到奔溃时的 backtrace,这是解决奔溃的关键线索。如果是同一台 Mac 进行打包,导入 crash log 会自动将 backtrace 进行符号化,这样我们就可以看到类名、文件名、方法名和行号。
|
||||
|
||||
如果打包不是在同一台 Mac,xcode 找不到对应的符号表,backtrace 是不会被解析成功的。
|
||||
|
||||
```
|
||||
Last Exception Backtrace:
|
||||
0 CoreFoundation 0x2cb535f2 __exceptionPreprocess + 122
|
||||
1 libobjc.A.dylib 0x3a3c5c72 objc_exception_throw + 34
|
||||
2 CoreFoundation 0x2ca67152 -[__NSArrayM objectAtIndex:] + 226
|
||||
3 myapp 0x004fe736 0x9b000 + 4601654
|
||||
4 myapp 0x00507ed4 0x9b000 + 4640468
|
||||
5 myapp 0x004fd112 0x9b000 + 4595986
|
||||
6 myapp 0x003275c6 0x9b000 + 2672070
|
||||
```
|
||||
|
||||
方法:将 crash 对应的包比如 Test.app 文件和 crash 文件放在一个文件夹下。执行下面命令
|
||||
```shell
|
||||
atos -arch arm64 Test.app/Test -l 0x9b000 0x004fe736
|
||||
```
|
||||
|
||||
|
||||
其中:
|
||||
arch 后代表指令架构集;第一个数字,取backtrace的要解析的行的第4列;第二个数字取第3列, 就会得到对应的方法名,文件名,行号.
|
||||
Reference in New Issue
Block a user