天天看點

Fatal signal 11 (SIGSEGV) at 0x390955ae (code=1)

http://blog.csdn.net/gq414047080/article/details/9012691

關于如下debug無法看出究竟是哪出了問題。之前嘗試各種方法,折騰了老半天都是沒有結果。

F/libc    (  148): Fatal signal 11 (SIGSEGV) at 0x390955ae (code=1)

I/ProtocalService(  148): [service]SaveOrder type:1data1:734data2:47

I/protocal_service(  148): [jni]saveo_order 1 734 47

D/protocal_core(  148): [C]type 1 data1 734 data2 47 

D/protocal_packet(  148): RCV ACK !

I/ProtocalService(  148): [service]SaveOrder type:1data1:737data2:53

I/protocal_service(  148): [jni]saveo_order 1 737 53

D/protocal_core(  148): [C]type 1 data1 737 data2 53 

D/protocal_packet(  148): RCV ACK !

I/DEBUG   (   84): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

I/DEBUG   (   84): Build fingerprint: 'softwinners/crane_evb_v13/crane-evb-v13:4.0.4/IMM76D/20130530:eng/test-keys'

I/DEBUG   (   84): pid: 148, tid: 155  >>> system_server <<<

I/DEBUG   (   84): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 390955ae

I/DEBUG   (   84):  r0 02de0100  r1 4e00002d  r2 4e00004d  r3 390955aa

I/DEBUG   (   84):  r4 408a69c0  r5 408a69c8  r6 408a69c8  r7 00000020

I/DEBUG   (   84):  r8 00001fa4  r9 5add5bfc  10 00001fb0  fp 00014c01

I/DEBUG   (   84):  ip 00000000  sp 5add5b50  lr 4086b9bb  pc 4086b840  cpsr 20000030

I/DEBUG   (   84):  d0  0005010256edb101  d1  584556d647806e00

I/DEBUG   (   84):  d2  1c2de0008008f200  d3  47806e704300e000

I/DEBUG   (   84):  d4  a20fa108408cf8df  d5  e00fe01aec1af7ca

I/DEBUG   (   84):  d6  dc032900009cf8d7  d7  47b81c317070f8df

I/DEBUG   (   84):  d8  0000000000000000  d9  0000000000000000

I/DEBUG   (   84):  d10 0000000000000000  d11 0000000000000000

I/DEBUG   (   84):  d12 0000000000000000  d13 0000000000000000

I/DEBUG   (   84):  d14 0000000000000000  d15 0000000000000000

I/DEBUG   (   84):  d16 0000000000000001  d17 991f1f1f991f1f1f

I/DEBUG   (   84):  d18 0707070703030303  d19 0000000000000000

I/DEBUG   (   84):  d20 0100010001000100  d21 0100010001000100

I/DEBUG   (   84):  d22 0000000000000000  d23 0000000000000000

I/DEBUG   (   84):  d24 0000000000000000  d25 0000000000000000

I/DEBUG   (   84):  d26 0067006700670067  d27 0067006700670067

I/DEBUG   (   84):  d28 0067006700670067  d29 0067006700670067

I/DEBUG   (   84):  d30 0001000000010000  d31 0001000000010000

I/DEBUG   (   84):  scr 20000012

I/DEBUG   (   84): 

I/DEBUG   (   84):          #00  pc 0007e840  /system/lib/libdvm.so (_Z14dvmCompilerNewjb)

I/DEBUG   (   84):          #01  pc 0007e9b6  /system/lib/libdvm.so (_Z19dvmInitGrowableListP12GrowableListj)

I/DEBUG   (   84):          #02  pc 0007ccf8  /system/lib/libdvm.so (_Z15dvmCompileTraceP19JitTraceDescriptioniP18JitTranslationInfoPA64_li)

I/DEBUG   (   84):          #03  pc 0008632a  /system/lib/libdvm.so (_Z17dvmCompilerDoWorkP17CompilerWorkOrder)

I/DEBUG   (   84):          #04  pc 0007c6ae  /system/lib/libdvm.so

I/DEBUG   (   84):          #05  pc 0005f696  /system/lib/libdvm.so

I/DEBUG   (   84):          #06  pc 00012c64  /system/lib/libc.so (__thread_entry)

I/DEBUG   (   84):          #07  pc 000127b8  /system/lib/libc.so (pthread_create)

I/DEBUG   (   84): 

I/DEBUG   (   84): code around pc:

I/DEBUG   (   84): 4086b820 78a4f641 4c274d26 bf284547 f8df46b8  A..x&M'LGE(..F..

I/DEBUG   (   84): 4086b830 447eb098 0a0cf108 447c447d 68339101  ..~D....}D|D..3h

I/DEBUG   (   84): 4086b840 68186859 4282187a 185cd80c 9b01605a  Yh.hz..B..\.Z`..

I/DEBUG   (   84): 4086b850 b123340c 21004620 f79f463a 4620ed42  .4#. F.!:F..B. F

I/DEBUG   (   84): 4086b860 8ffee8bd b10b689b e7e86033 f79f4650  .....h..3`..PF..

I/DEBUG   (   84): 

I/DEBUG   (   84): code around lr:

I/DEBUG   (   84): 4086b998 1c4868a3 7021f843 e8bd6060 bf0081f0  .hH.C.!p``......

I/DEBUG   (   84): 4086b9a8 23006001 6043b510 00884604 f7ff2101  .`.#..C`.F...!..

I/DEBUG   (   84): 4086b9b8 60a0ff2d bf00bd10 f641b510 f79f70b0  -..`......A..p..

I/DEBUG   (   84): 4086b9c8 4b0eec9e 4604447b b9406018 2006490c  ...K{D.F.`@..I. 

I/DEBUG   (   84): 4086b9d8 44794a0c f79f447a 4620ec74 4a0ae00c  .JyDzD..t. F...J

I/DEBUG   (   84): 

I/DEBUG   (   84): 

解決方法:

1,一開始懷疑自己寫的的代碼,可上述debug根本沒有列印出自己所增加的.so,懷疑系統其它地方存在bug

2,經過反複複制發現隻有執行自己新加功能時才會當機,原因鎖定在自己的.so。

3,網上查資料說什麼線程鎖等等。。。

4,最後隻好老老實實檢查自己代碼,發現有地方對buffer操作出現了越界(低級錯誤),在多次執行該地方後破壞記憶體資料導緻奔潰。。。

----------------------------------------------------------------------

Fatal signal 11 (SIGSEGV)的問題

http://blog.sina.com.cn/s/blog_928574110101bjjj.html

新手搞起東西來果然很麻煩啊,面對陌生的東西,隻有前進前進前進,沒有退路,不由得感慨萬千。。

上網上查Fatal signal 11 (SIGSEGV),直說是和記憶體有關,具體為什麼真的不知道,而且是丈二的和尚摸不着頭腦,除了這一句沒有明顯的提示了。我的程式時雙庫的調用,先上段代碼吧,這都是赤裸裸的教訓啊!!

int ThresholdProcess(BYTE Image[], BYTE ThresholdFlag[])

{

int i;

for(i = 0; i < ImageWidth*ImageHeight; i ++)

{

if(Image[i] > 40)

{

ThresholdFlag[i] = 255;

}

else

ThresholdFlag[i] = 0;

}

return 1;

}

從表面看來沒有什麼明顯的錯誤,而且邏輯上都沒有問題,數組越界就更使不肯能了,之前做的時候倒是碰到了數組越界的問題,但是這次絕對沒有越界的事兒了。

靈機一動,不知怎地,就想到JNI接口中應該将傳遞進來的參數轉換一下,否則無法指派和調用,于是乎就試了下,一系列的 GetArrayLength,GetIntArrayElements後,将可以操作的數組作為參數傳遞進了函數内,果然是這個問題,給自己鼓下掌吧,帥呆了。

JNI調用函數為:

JNIEXPORT jint JNICALL Java_com_example_myapplication_MainActivity_test(JNIEnv *env, jobject thiz, jintArray Image, jintArray ThresholdFlag)

{

jint i;

LOGE("here");

jint length = (*env)->GetArrayLength(env, Image);

jint temp[length], tempthreshold[length];

jint* arr = (*env)->GetIntArrayElements(env, Image, NULL);

jint* threshold = (*env)->GetIntArrayElements(env, ThresholdFlag, NULL);

for(i = 0; i < length; i++)

{

temp[i] = arr[i];

tempthreshold[i] = threshold[i];

}

ThresholdProcess(temp, tempthreshold);

(*env)->SetIntArrayRegion(env,ThresholdFlag,0,length,tempthreshold);

return 1;

}

-----------------------------------------------------------------------------------

ndroid、Java開發相關:A/libc(28088): Fatal signal 11 (SIGSEGV) at 0x616f708c (code=1),

http://zhidao.baidu.com/link?url=HNoLn_9OigLaY6ULu037w7dQAnQ2VD4QJ-jNdZl_FijYJgjbMTUEQ5i-agXGgUBQbni1lpMjm3_IbQDZ0W6ZLa

09-02 11:15:25.775: A/libc(28088): Fatal signal 11 (SIGSEGV) at 0x616f708c (code=1), thread 28316 (jue.pd.activity)。。。我的Android程式中出現這個錯誤,求教一下,這個錯是什麼意思?如何避免或修改?

這個錯誤一般是出現了記憶體洩露問題,可以檢查一下是否出現了野指針,或者某些線程或者執行個體是否及時關閉,謝謝

曾經遇到過這個問題,這個問題引起的原因太多了,我說下我的情況:

我的android程式調用到了一個.so的檔案,檔案中定義的資源清單是在.pak中。如果出現.pak和.so檔案不比對,或者代碼中回調函數和.so的接口不比對就會出現這個問題。

編譯能通過,但是一運作就會出現這個錯誤。

最後是仔細檢查了so中接口和java檔案的回調函數,解決了。

-----------------------------------------------------------------------------------------------------

ICS libc Fatal signal 11 (SIGSEGV) at 0x00000000

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=206725&page=2#pid2809552

 打啥别打臉  No.3 秀才開發者  發表于 2013-5-16 17:59:40 | 隻看該作者

    黑兔子也很萌 發表于 2013-5-13 10:33

    沒有……找不到究竟是哪裡的資源沒有釋放掉,明明已經bMapManager.distroy又=null了,可到了下 ...

大神 你解決了麼 求指導642169931

點評

黑兔子也很萌 沒能成為大神真抱歉……沒解決,最後隻好換了低版本的百度地圖API就不再糾結這個問題了……  詳情 回複 發表于 2013-5-17 09:58

舉報

回複

黑兔子也很萌

1

主題

202

文章

354

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

17樓

黑兔子也很萌 No.4 中級開發者 發表于 2013-5-17 09:58:20 | 隻看該作者

    打啥别打臉 發表于 2013-5-16 17:59

    大神 你解決了麼 求指導642169931

沒能成為大神真抱歉……沒解決,最後隻好換了低版本的百度地圖API就不再糾結這個問題了……

舉報

回複

紅塵丶

7

主題

516

文章

2006

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [紅塵丶 的新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

18樓

紅塵丶 No.5 磚家開發者 發表于 2013-5-31 11:01:01 | 隻看該作者

也遇到這個問題了,  不知道怎麼解決

舉報

回複

beingx

主題

6

文章

87

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

19樓

beingx No.1 開發小菜鳥 發表于 2013-6-3 12:43:25 | 隻看該作者

    黑兔子也很萌 發表于 2013-5-7 16:06

    有沒有人 在用百度地圖的時候出現這個問題啊……Fatal signal 11 (SIGSEGV) at 0x00647528 (code=1){:5_217 ...

我剛遇到這個問題了,就像你們講的,是MapManager資源釋放的問題,

我之間是這麼寫的,mBMapMan是從另一個方法中得來,我在這裡把mBMapMan=null了,看起來是把mBMapMan銷毀了,但下次獲得時還是獲得的之前的同一個MapManager,後來加一句把MyFactory中的MapManager也=null就ok了

總之我的問題是粗心大意了,給大家提個醒,看會不會是同樣的問題,供參考

BMapManager mBMapMan = null;

mBMapMan = MyFactory.getInstance().getMapManager();

......

mBMapMan.destroy();

mBMapMan = null;

點評

ovjaywang 請問MyFacory是從哪裡來的呢。好像Android包裡面沒有的樣子啊??  詳情 回複 發表于 2013-6-10 03:12

舉報

回複

brook19

14

主題

264

文章

456

e币

加為好友 發送消息 通路部落格

QQ 檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

20樓

brook19 No.5 磚家開發者 發表于 2013-6-5 11:42:06 | 隻看該作者

    黑兔子也很萌 發表于 2013-5-13 10:33

    沒有……找不到究竟是哪裡的資源沒有釋放掉,明明已經bMapManager.distroy又=null了,可到了下 ...

我也在用百度地圖的時候出現了這個問題,然後程式閃退

舉報

回複

ovjaywang

主題

2

文章

17

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [ovjaywang 的新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

21樓

ovjaywang No.1 開發小菜鳥 發表于 2013-6-10 03:12:49 | 隻看該作者

    beingx 發表于 2013-6-3 12:43

    我剛遇到這個問題了,就像你們講的,是MapManager資源釋放的問題,

    我之間是這麼寫的,mBMapMan是從另一 ...

請問MyFacory是從哪裡來的呢。好像Android包裡面沒有的樣子啊??

舉報

回複

mypong

主題

258

文章

778

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

22樓

mypong No.4 中級開發者 發表于 2013-7-22 16:34:01 | 隻看該作者

這個問題歸結原因,最終就是有記憶體未釋放,可是不隻是哪一塊記憶體未釋放呀

舉報

回複

qhy2013qhy

1

主題

286

文章

1017

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [qhy2013qhy 的新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

23樓

qhy2013qhy No.4 中級開發者 發表于 2013-8-1 11:46:47 | 隻看該作者

地圖、定位、搜尋功能都需要BMapManager來管理,BMapManager提供四個接口,init, start, stop, destroy。

建議在Application裡生成BMapManager對象并初使化,在程式退出時調用destory,

在需要使用sdk功能的activity的onCreate裡調用start, onDestroy調用stop,

或者onResume/onPause分别調用start和stop。 若沒有初始化BMapManager對象,會出現“

No implementation found for native Lcom/baidu/platform/comjni/tools/JNITools;.GetDistanceByMC (Ljava/lang/Object;)V”

“java.lang.UnsatisfiedLinkError: GetDistanceByMC”等錯誤。

舉報

回複

qhy2013qhy

1

主題

286

文章

1017

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [qhy2013qhy 的新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

24樓

qhy2013qhy No.4 中級開發者 發表于 2013-8-1 11:47:55 | 隻看該作者

這是我遇到native Lcom/baidu/platform/comjni/tools/JNITools;.GetDistanceByMC (Ljava/lang/Object;)V”

“java.lang.UnsatisfiedLinkError: GetDistanceByMC找到的。。。

舉報

回複

qhy2013qhy

1

主題

286

文章

1017

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [qhy2013qhy 的新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

25樓

qhy2013qhy No.4 中級開發者 發表于 2013-8-1 11:48:35 | 隻看該作者

百度地圖SDK 2.1

舉報

回複

meimei1987

10

主題

138

文章

11

e币

加為好友 發送消息 通路部落格

檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

26樓

meimei1987 No.3 秀才開發者 發表于 2013-10-29 09:59:30 | 隻看該作者

樓主,我的APP裡沒有調用C代碼,也沒有使用malloc,但還是出現了這樣的問題,這是怎麼回事啊?

舉報

回複

917862274

2

主題

102

文章

241

e币

加為好友 發送消息 通路部落格

QQ 檢視詳細資料 [未綁定新浪微網誌]

[未綁定新浪微網誌]

    * 個人資料

    * 主題清單

    * 發消息

27樓

917862274 No.3 秀才開發者 發表于 2014-1-10 14:22:39 | 隻看該作者

    黑兔子也很萌 發表于 2013-5-13 10:33

    沒有……找不到究竟是哪裡的資源沒有釋放掉,明明已經bMapManager.distroy又=null了,可到了下 ...

還真是這個問題,我把離線地圖注釋掉就ok 了 

-------------------------------------------------------------------------------

Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)問題解決

http://blog.csdn.net/sonikk/article/details/9217181

異常出現頻率:非必現,乍看不可捉摸。

BUG導緻:應用程式崩潰,過一小會兒會自動退出。

Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)

遇到這個問題很無奈,但是經過不斷探索終于找到了問題的原因!!!

這個問題非常不給面子,居然在給上級示範程式的時候突然崩壞! 哭哭哭!!!NND看老子一會兒怎麼治你!!!

這個是典型的多線程引起的問題,

我當時的應用場景是:

SurfaceView裡面有一個Bitmap成員變量

而我們都知道SurfaceView裡面的繪圖方法是在一個新開的線程裡面執行的,在這個繪圖方法裡,會執行把Bitmap繪制到Canvas上面的操作

當我點選一個按鈕的時候,可能會改變Bitmap的引用,指向另外一張處理完成的圖檔,這個時候Bitmap這個成員變量會被我recycle(),釋放掉。

問題就在這裡了,我在recycle這個Bitmap的時候,也許Thread中正在執行把Bitmap繪制到Canvas上的操作,可能剛好正在執行當中,或者執行了一半,而GC毫不留情地把這個Bitmap請上了天堂,就這樣,Java調用底層的API當中就突然發生了Error,是以這個問題才沒有任何的Java異常提示。

解決問題的辦法就是:

1. 在SurfaceView的按鈕點選事件裡用到Bitmap的地方改寫代碼:

[plain] view plaincopyprint?

   1. Bitmap bmp = null;  

   2.   

   3. synchronized(mBmp)  

   4. {  

   5.     bmp = mBmp;  

   6.     mBmp = filter(bmp);  

   7. }  

   8.           

   9. // 釋放  

  10. if(bmp.isRecycled() == false)  

  11. {  

  12.     bmp.recycle();  

  13.     bmp = null;  

  14.     System.gc();  

  15. }  

Bitmap bmp = null;

synchronized(mBmp)

{

    bmp = mBmp;

    mBmp = filter(bmp);

}

// 釋放

if(bmp.isRecycled() == false)

{

    bmp.recycle();

    bmp = null;

    System.gc();

}

2. 在SurfaceView的Thread當中改寫代碼:

[plain] view plaincopyprint?

   1. synchronized(mBmp)  

   2. {  

   3.     // ...  

   4.     canvas.drawBitmap(mBmp, mMatrix, null);  

   5. }  

synchronized(mBmp)

{

    // ...

    canvas.drawBitmap(mBmp, mMatrix, null);

}

OK!煩惱不再!啤酒一杯~ 

-----------------------------------------------------------------------

Android錯誤: 模拟器自動重新開機 - Fatal signal 11 (SIGSEGV) at 0x00000024

http://dreamisx.blog.163.com/blog/static/1150048392012111911393868/

這些天在Android 4.0下調試一個Android小程式時遇到AVD模拟器自動重新開機的錯誤,表現為在SurfaceView的OnTouch事件裡調用另一個 Activity時,模拟器即自動重新開機,且屢試不爽。出現這個現象時,我試了直接用startActivity通過Intent直接啟動另一 Activity,也試了在SurfaceView裡發消息到Main Activity裡再用startActivity啟動另一Activity,都一樣會出現自動重新開機的錯誤。但是,我在Android 2.3模拟器環境裡測試,卻又不會出現自動重新開機的問題!估計這是Android 4.0模拟器的一個bug。

  仔細檢查LogCat,發現有“Fatal signal 11 (SIGSEGV) at 0x00000024”這樣的錯誤提示,網上查了都說是什麼野指針引起的錯誤,似乎對我遇到的問題沒有太大幫助,百思不得其解。

  經過多次測試後,我發現隻要調用另一個Activity時結束目前Activity裡的線程就沒問題了!我是在SurfaceView裡用線程來畫圖的,隻要確定SurfaceView的畫圖線程結束掉,那調用其他Activity就沒事了。哈哈,解決方法就這麼簡單!

  最後,又要發點牢騷:Android SDK的小Bug真多啊。

-----------------------------------------------------------------------------------