天天看点

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真多啊。

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