我有一個android應用程序使用JNI中的共享對象(我自己寫的),導致一個癱瘓。但是,我有一個粗略的時間調試,因爲每次它崩潰的時候,我的/ dev /日誌主要是與像這樣的消息充斥/:Android NDK崩潰日誌太大,找不到錯誤
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7608 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b760c ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7610 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7614 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7618 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b761c ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7620 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7624 ffffffff
06-18 12:50:31.069 2863 2863 I DEBUG : 453b7628 ffffffff
有沒有辦法來抑制輸出我手機上的每個內存地址似乎都是這樣,以便我可以在堆棧跟蹤中找到相關信息?
(更多的東西像這樣):
06-18 13:07:35.857 11350 11350 I DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 452c7000
06-18 13:07:35.857 11350 11350 I DEBUG : r0 00000021 r1 452c66a0 r2 00000033 r3 0000003c
06-18 13:07:35.857 11350 11350 I DEBUG : r4 000000a1 r5 452c7000 r6 002cf880 r7 453c6b08
06-18 13:07:35.857 11350 11350 I DEBUG : r8 4051e618 r9 00020000 10 51eb851f fp 81f03700
06-18 13:07:35.857 11350 11350 I DEBUG : ip 00000064 sp 452c6af8 lr 81f00e35 pc 81f00df8 cpsr 00000030
06-18 13:07:35.857 11350 11350 I DEBUG : d0 0000000000000000 d1 0000002f00000000
06-18 13:07:35.857 11350 11350 I DEBUG : d2 4da4480e423d3abc d3 006f1fe04a5247c0
06-18 13:07:35.857 11350 11350 I DEBUG : d4 00000000003491f0 d5 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d6 3f80000000000000 d7 43200000000000a0
06-18 13:07:35.857 11350 11350 I DEBUG : d8 0000000000000000 d9 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d10 0000000000000000 d11 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d12 0000000000000000 d13 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : d14 0000000000000000 d15 0000000000000000
06-18 13:07:35.857 11350 11350 I DEBUG : scr 60000012
06-18 13:07:35.857 11350 11350 I DEBUG :
06-18 13:07:35.887 11350 11350 I DEBUG : tid 11348 not responding!
我大多使用Eclipse中的DDMS透視圖,但一直有使用adb shell
從主日誌趕上直接堆放因爲Eclipse中的窗口變得相當不堪重負很快。這是一個不可接受的工作流程。
你用什麼命令「adb shell」? – gfour
我跳進shell中,然後將輸出重定向到一個文件,例如'logcat> ohnoweareallgoingtodie.log',然後將其複製到我的開發機器中,以便在文本編輯器中查看它。 – sleepynate
作爲解決方法,您可以運行'logcat |尾-200 |更少「來直接在終端中查看日誌的最後200行。或者,您可以執行'grep -n SIGSEGV ohnoweareallgoingtodie.log'來查找信息開始的行N,然後執行'tail --lines = + N ohnoweareallgoingtodie.log'。 – gfour