天天看點

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

文章目錄

·       一、遇到問題

·       二、Native日志分析

·       三、信号量(signal) 和 錯誤碼(code)分析

·       四、PC指針addr2line定位

·  4.1 addr2line路徑

·  4.2 so路徑

·  4.3 addr2line查詢

·       五、修改代碼

·       六、後續~

一、遇到問題

客戶小姐姐回報一個Crash問題,但是機率很小,開發和測試都沒遇到過。

總不能讓小姐姐幫忙抓取logcat日志。

逼不得已,用上了殺手锏

友盟+U-APM

神器,重新給小姐姐更新了一版APK。

然後,開瓶82年的冰闊落,坐等日志上來。

二、Native日志分析

來了來了,日志它來了。

乍看,有點慌。

這是大名鼎鼎的Native Crash啊。

這是隔壁C++組的鍋啊,我就說像我這麼資深的程式員,怎麼可能寫出這bug呢~

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

三、信号量(signal) 和 錯誤碼(code)分析

不過,來都來了,看都看了,且再認真看看具體是哪裡有bug~

點選全屏檢視,一堆十六進制,咋看有點慌。

不過老司機帶路,莫慌,翻開

友盟的文檔中心的Native崩潰說明

·       SIGSEGV,一個程序執行了一個無效的記憶體引用,或發生段錯誤。

·       SEGV_MAPERR,位址不在 /proc/self/map 映射中

看到這裡,有點頭緒咯,空指針、段錯誤?

跟着老司機,接着往下走,go~

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~
基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~
基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

四、PC指針addr2line定位

4.1 addr2line路徑

· 先找到ndk的路徑,在local.properties

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

· 再找到addr2line

· 其中aarch64-linux-android-4.9和arm-linux-androideabi-4.9都是可以的

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

4.2 so路徑

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

4.3 addr2line查詢

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~
基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

· 按照log的列印順序,我們從下往上看,先執行cxa_demangle.cpp:309

· 但是,cxa_demangle是個啥東西呢

· 新的ABI委托執行C++運作庫的入口

· 就是這個入口走錯了?走到了空指針?

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

· 這時候重新在 背景定睛一看,Java_com_umeng_crashdemo_MainActivity_stringFromJNI

· 那就先查它

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

五、修改代碼

代碼定位到這裡來,一看代碼,很簡單啊

改改改!!!

基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~
基于友盟U-APM解決客戶小姐姐Android Native Crash問題,小姐姐說我真棒,要把她閨蜜介紹給我文章目錄五、修改代碼六、後續~

六、後續~

重新打包個APK,發給客戶小姐姐。

翹着二郎腿,再開一瓶冰闊落~

果不其然~

客戶小姐姐很開心,說我真棒,要把她閨蜜介紹給我。

咦,我的春天來了~

我的嘴角不自覺揚起45°的微笑。

哎,醒醒,醒醒,要debug了~~~

作者:康玮劍

繼續閱讀