Monkey log異常分析說明

Monkey log異常分析說明

以下主要針對在Android-Phone項(xiàng)目中進(jìn)行Monkey?log進(jìn)行分析和說明夺谁,可以對bug提交作為參考胧后。

要求熟悉舍败,應(yīng)用的包名谤祖。也就是說那個(gè)應(yīng)用包出現(xiàn)問題,該屬于那個(gè)模塊甜孤,應(yīng)用包名是判斷依據(jù)协饲。

1、Null指針異常

空指針異常主要是有NullPointerException異常提示缴川,在Monkey測試過程中茉稠,該信息一般記錄在plog.log?(locat中也有該信息)中。

如果Monkey命令被中斷把夸,說明有異常信息并且有對應(yīng)的打印信息而线,可以看到如下信息,說明幾個(gè)問題:

A恋日、android.process.acore該進(jìn)程出現(xiàn)異常

B膀篮、異常信息主要是由于NullPointerException引起的,也就是出現(xiàn)了空指針岂膳,導(dǎo)致了acore進(jìn)程進(jìn)入debug

C誓竿、具體的可以繼續(xù)分析是由哪個(gè)函數(shù)的那一行導(dǎo)致的,如可以從rollAnimate3dRotate.java文件中的275行查找等谈截。

//at?com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)

D筷屡、可能同一應(yīng)用中存在多處的空指針異常涧偷,所以一旦出現(xiàn)空指異常后,可以分析和對比log信息毙死,如果不一致的話燎潮,需要把新的log信息也一同添加到bug中,如果log信息一直的話扼倘,則不需要繼續(xù)補(bǔ)充沒有必要的log信息跟啤。

**************************************************************************

//?CRASH:?android.process.acore?(pid?1339)

//?Short?Msg:?java.lang.NullPointerException

//?Long?Msg:?java.lang.NullPointerException

//?Build?Label:?android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:e

ng/release-keys

//?Build?Changelist:?-1

//?Build?Time:?1271397239

//?ID:

//?Tag:?AndroidRuntime

//?java.lang.NullPointerException:

//???at?com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)

//???at?com.android.launcher.Workspace.dispatchDraw(Workspace.java:605)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1524)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?com.android.launcher.DragLayer.dispatchDraw(DragLayer.java:258)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1524)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?android.view.View.draw(View.java:6329)

//???at?android.widget.FrameLayout.draw(FrameLayout.java:352)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?android.view.View.draw(View.java:6329)

//???at?android.widget.FrameLayout.draw(FrameLayout.java:352)

//???at?com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1901)

//???at?android.view.ViewRoot.draw(ViewRoot.java:1333)

//???at?android.view.ViewRoot.performTraversals(ViewRoot.java:1098)

//???at?android.view.ViewRoot.handleMessage(ViewRoot.java:1618)

//???at?android.os.Handler.dispatchMessage(Handler.java:99)

//???at?android.os.Looper.loop(Looper.java:123)

//???at?android.app.ActivityThread.main(ActivityThread.java:4203)

//???at?java.lang.reflect.Method.invokeNative(Method.java:-2)

//???at?java.lang.reflect.Method.invoke(Method.java:521)

//???at?com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)

//???at?com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

//???at?dalvik.system.NativeStart.main(NativeStart.java:-2)

**?System?appears?to?have?crashed?at?event?7908?of?5000000?using?seed?0

2、debug異常

debug異常主要是由于應(yīng)用程序本身的錯誤導(dǎo)致的異常唉锌。在Monkey測試過程中,該信息同樣記錄在plog.log?(locat中也有該信息)中竿奏。一般情況下袄简,出現(xiàn)的該問題,很可能在手動測試時(shí)也可以測試到泛啸。

A绿语、com.android.browser該進(jìn)程進(jìn)入debug

B、出現(xiàn)的是IllegalStateException異常候址,該異常一般多是傳遞的參數(shù)非法或被多次調(diào)用時(shí)出現(xiàn)的異常

C吕粹、Bug信息提交時(shí),詳細(xì)信息中一般應(yīng)該包含如下的log信息岗仑,方便開發(fā)人員分析和定位匹耕。

************************************************************************

//?CRASH:?com.android.browser?(pid?5683)

//?Short?Msg:?Connection?is?not?open

//?Long?Msg:?java.lang.IllegalStateException:?Connection?is?not?open

//?Build?Label:?android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:eng/release-keys

//?Build?Changelist:?-1

//?Build?Time:?1271397239

//?ID:

//?Tag:?AndroidRuntime

//?java.lang.IllegalStateException:?Connection?is?not?open

//???at?android.net.http.AndroidHttpClientConnection.assertOpen(AndroidHttpClien

tConnection.java:153)

//???at?android.net.http.AndroidHttpClientConnection.setSocketTimeout(AndroidHtt

pClientConnection.java:195)

//???at?android.net.http.Connection.openHttpConnection(Connection.java:364)

//???at?android.net.http.Connection.processRequests(Connection.java:225)

//???at?android.net.http.ConnectionThread.run(ConnectionThread.java:116)

**?System?appears?to?have?crashed?at?event?34155?of?5000000?using?seed?0**

3、低內(nèi)存異常

低內(nèi)存異常一般情況下荠雕,主要表現(xiàn)在出現(xiàn)OutOfMemoryError異澄绕洌或者提示Out?of?memory,其后果同樣表現(xiàn)為拋出OutOfMemoryError異痴ū埃或者是通過kill?process來殺掉部分進(jìn)程以釋放內(nèi)存空間既鞠,當(dāng)然如果被kill點(diǎn)關(guān)鍵的進(jìn)程的話,也就可能導(dǎo)致部分應(yīng)用會自動的退出盖文。出現(xiàn)該情況時(shí)嘱蛋,主要是在進(jìn)行頻繁的進(jìn)行大量的操作導(dǎo)致的,所以使用手動的方式也是可能進(jìn)行重現(xiàn)的五续。

A洒敏、com.android.elastos.backup該進(jìn)程出現(xiàn)的異常

B、出現(xiàn)的是OutOfMemoryError異常返帕,該異常一般多頻繁的操作(即多次調(diào)用某個(gè)函數(shù)桐玻,存在申請變量空間未釋放)導(dǎo)致的

C、Bug信息提交時(shí)荆萤,詳細(xì)信息中同樣應(yīng)該包含如下的log信息镊靴,方便開發(fā)人員分析和定位铣卡。

//?CRASH:?com.android.elastos.backup?(pid?1581)

//?Short?Msg:?bitmap?size?exceeds?VM?budget

//?Long?Msg:?java.lang.OutOfMemoryError:?bitmap?size?exceeds?VM?budget

//?Build?Label:?android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:eng/release-keys

//?Build?Changelist:?-1

//?Build?Time:?1271397239

//?ID:

//?Tag:?AndroidRuntime

//?java.lang.OutOfMemoryError:?bitmap?size?exceeds?VM?budget

//???at?android.graphics.Bitmap.nativeCreate(Bitmap.java:-2)

//???at?android.graphics.Bitmap.createBitmap(Bitmap.java:464)

//???at?android.graphics.Bitmap.createBitmap(Bitmap.java:431)

//???at?android.graphics.Bitmap.createScaledBitmap(Bitmap.java:336)

//???at?android.widget.AbsListView.preScaleBitmapBG(AbsListView.java:2354)

//???at?android.widget.AbsListView.draw(AbsListView.java:2365)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?android.view.View.draw(View.java:6329)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?android.view.View.draw(View.java:6329)

//???at?android.widget.FrameLayout.draw(FrameLayout.java:352)

//???at?android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//???at?android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//???at?android.view.View.draw(View.java:6329)

//???at?android.widget.FrameLayout.draw(FrameLayout.java:352)

//???at?com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1901)

//???at?android.view.ViewRoot.draw(ViewRoot.java:1333)

//???at?android.view.ViewRoot.performTraversals(ViewRoot.java:1098)

//???at?android.view.ViewRoot.handleMessage(ViewRoot.java:1618)

//???at?android.os.Handler.dispatchMessage(Handler.java:99)

//???at?android.os.Looper.loop(Looper.java:123)

//???at?android.app.ActivityThread.main(ActivityThread.java:4203)

//???at?java.lang.reflect.Method.invokeNative(Method.java:-2)

//???at?java.lang.reflect.Method.invoke(Method.java:521)

//???at?com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)

//???at?com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

//???at?dalvik.system.NativeStart.main(NativeStart.java:-2)

**?System?appears?to?have?crashed?at?event?143290?of?100000000?using?seed?0#

或者出現(xiàn)plog信息的最后出現(xiàn)如下log信息也可能存在同樣問題:

<3>[56351.640641]?Out?of?memory:?kill?process?14177?(app_process)?score?247872?or?a?child

<3>[56351.641121]?Killed?process?14177?(app_process)

4、操作無響應(yīng)異常

操作無響應(yīng)的問題偏竟,主要表現(xiàn)在Monkey運(yùn)行過程中煮落,出現(xiàn)某功能無響應(yīng),提示是否“強(qiáng)制關(guān)閉“或“等待“踊谋,同時(shí)會打印出相應(yīng)的log信息蝉仇,如下:

A、可以說明com.android.soundrecorder該進(jìn)程出現(xiàn)的無響應(yīng)

B殖蚕、出現(xiàn)的是TimerOut異常轿衔,該異常一般出現(xiàn)時(shí)一般都會又keyDispatchingTimedOut提示

C、目前睦疫,uPhone手機(jī)中經(jīng)常出現(xiàn)操作無響應(yīng)的幾個(gè)模塊包括:clock害驹、camera、soundrecorder蛤育、broser等宛官,根據(jù)開發(fā)人員分析其他模塊也是有可能出現(xiàn)操作無響應(yīng)的,測試過程中瓦糕,請多注意底洗。

D、出現(xiàn)無響應(yīng)異常咕娄,一般情況下很難被修復(fù)亥揖,和發(fā)送事件的頻率也是有關(guān)系的,從質(zhì)量上來要求的話谭胚,要求盡可能的減少出現(xiàn)操作無響應(yīng)的頻率和時(shí)間徐块。

//?NOT?RESPONDING:?com.android.soundrecorder?(pid?1931)

ANR?in?process:?com.android.soundrecorder?(last?in?com.android.soundrecorder)

Annotation:?keyDispatchingTimedOut

CPU?usage:

Load:?8.24?/?8.41?/?8.25

CPU?usage?from?35911ms?to?83ms?ago:

com.android.soundrecorder:?4%?=?3%?user?+?0%?kernel?/?faults:?997?minor?43?maj

or

mediaserver:?2%?=?2%?user?+?0%?kernel?/?faults:?267?minor?3?major

android.process.media:?2%?=?0%?user?+?1%?kernel?/?faults:?563?minor?194?major

system_server:?1%?=?1%?user?+?0%?kernel?/?faults:?1279?minor?5?major

com.cootek.touchpal:?0%?=?0%?user?+?0%?kernel?/?faults:?180?minor?1?major

sensorserver_ya:?0%?=?0%?user?+?0%?kernel?/?faults:?47?minor?1?major

mmcqd:?0%?=?0%?user?+?0%?kernel

app_process:?0%?=?0%?user?+?0%?kernel?/?faults:?203?minor?1?major

com.fihtdc.brservice:?0%?=?0%?user?+?0%?kernel?/?faults:?29?minor

kswapd0:?0%?=?0%?user?+?0%?kernel

com.android.settings:?0%?=?0%?user?+?0%?kernel?/?faults:?266?minor

port-bridge:?0%?=?0%?user?+?0%?kernel?/?faults:?19?minor

rpcrouter:?0%?=?0%?user?+?0%?kernel

com.android.mms:?0%?=?0%?user?+?0%?kernel?/?faults:?135?minor?8?major

TOTAL:?13%?=?8%?user?+?4%?kernel?+?0%?iowait

procrank:

PID??????Vss??????Rss??????Pss??????Uss??cmdline

1209???35368K???25376K???15283K???14036K??system_server

1342???32788K???24596K???14899K???14136K??android.process.acore

……

//?procrank?status?was?0

anr?traces:

//?meminfo?status?was?0

**?System?appears?to?have?crashed?at?event?59034?of?5000000?using?seed?0

5、其他異常

A灾而、Restart?System異常(系統(tǒng)重新啟動)胡控,即log信息的最后幾行會看到Restart?System的打印信息,說明手機(jī)被自動的重啟或斷掉旁趟,有幾個(gè)方面的原因

1昼激、運(yùn)行過程中,存在異常手機(jī)被自動重啟

2锡搜、手機(jī)在運(yùn)行過程中橙困,進(jìn)入設(shè)置中的恢復(fù)出場設(shè)置,導(dǎo)致手機(jī)重啟

3耕餐、其他原因凡傅,如果手機(jī)后蓋移動等

B、RuntimeException等異常,同樣的會在plog.log中可以看到相應(yīng)的打印信息,?java.lang.RuntimeException該問題多出現(xiàn)在操作無響應(yīng)之后,或者是某應(yīng)用的服務(wù)無法啟動或連接時(shí),需要具體問題具體的分析

C肠缔、StaleDataException夏跷、readException等異常,在plog.log中可以看到相應(yīng)的打印信息,也會有相應(yīng)的信息:?android.database.StaleDataException,該信息說明android的數(shù)據(jù)庫操作出現(xiàn)異常,需要具體問題具體的分析

D哼转、IllegalArgumentException等異常,多少情況下為說明向函數(shù)傳遞了一個(gè)不正確或不合法的參數(shù)需要具體問題具體的分析

E槽华、其他壹蔓,帶補(bǔ)充和分析說明

說明幾點(diǎn):

1、log信息的分析猫态,希望在bug信息的簡述中能夠明確說明清楚出現(xiàn)的是什么異常佣蓉,具體的log信息要單獨(dú)添加到詳細(xì)信息描述中,方便相關(guān)人員定位和查看亲雪。

2勇凭、bug的提交,對于Monkey測試出現(xiàn)的問題:

a义辕、首先要求分析log信息

b套像、再次要確認(rèn)該bug是否已經(jīng)提交?已經(jīng)提交的bug和新運(yùn)行出來的問題是否一致终息?

c、如果不一致的話贞让,是否屬于同一問題周崭,如空指針異常,是的話就把該問題的log信息一起注釋到bug信息中喳张,并添加所有的log信息

d续镇、如果不一致的,也不屬于同一問題的話销部,可以提交新的bug

3摸航、在java編程中,一般的異常都會拋出xxx?Exception的信息舅桩,可以跟進(jìn)xxx進(jìn)行相關(guān)的判斷和分析酱虎,具體的異常則需要具體問題具體分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市擂涛,隨后出現(xiàn)的幾起案子读串,更是在濱河造成了極大的恐慌,老刑警劉巖撒妈,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恢暖,死亡現(xiàn)場離奇詭異,居然都是意外死亡狰右,警方通過查閱死者的電腦和手機(jī)杰捂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棋蚌,“玉大人嫁佳,你說我怎么就攤上這事挨队。” “怎么了脱拼?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵瞒瘸,是天一觀的道長。 經(jīng)常有香客問我熄浓,道長情臭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任赌蔑,我火速辦了婚禮俯在,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘娃惯。我一直安慰自己跷乐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布趾浅。 她就那樣靜靜地躺著愕提,像睡著了一般。 火紅的嫁衣襯著肌膚如雪皿哨。 梳的紋絲不亂的頭發(fā)上浅侨,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機(jī)與錄音证膨,去河邊找鬼如输。 笑死,一個(gè)胖子當(dāng)著我的面吹牛央勒,可吹牛的內(nèi)容都是我干的不见。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼崔步,長吁一口氣:“原來是場噩夢啊……” “哼稳吮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起井濒,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤盖高,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后眼虱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喻奥,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年捏悬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撞蚕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡过牙,死狀恐怖甥厦,靈堂內(nèi)的尸體忽然破棺而出纺铭,到底是詐尸還是另有隱情,我是刑警寧澤刀疙,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布舶赔,位于F島的核電站,受9級特大地震影響谦秧,放射性物質(zhì)發(fā)生泄漏竟纳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一疚鲤、第九天 我趴在偏房一處隱蔽的房頂上張望锥累。 院中可真熱鬧,春花似錦集歇、人聲如沸桶略。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽际歼。三九已至,卻和暖如春姑蓝,著一層夾襖步出監(jiān)牢的瞬間蹬挺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工它掂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人溯泣。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓虐秋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親垃沦。 傳聞我的和親對象是個(gè)殘疾皇子客给,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容