0

私はかなり奇妙な問題を抱えています!

JNI(Cコード)部分のpthread_getspecificの後にアプリケーションがクラッシュしますが、奇妙なことに、クラッシュする前にこの関数を何度も使用し、すべてが正常であったため、直接クラッシュしないためです。

だから、ここでクラッシュが発生するCコード:

int *compteur;
__android_log_print(ANDROID_LOG_INFO, "JNI", "before getspecific key : %d",key);
compteur=(int*)pthread_getspecific(key);
__android_log_print(ANDROID_LOG_ERROR, "JNI", "error %s",strerror(errno));
__android_log_print(ANDROID_LOG_INFO, "JNI", "pointeur : %ld",*compteur);
(*compteur)=(*compteur)-1;
if ((*compteur)==0)
{
  pthread_mutex_unlock(&mutex));
}  

そしてlogcatは私にそれを示します:

>     before getspecific key : 13
>     error Unknown error: 0
>     pointeur : 1
>     before getspecific key : 13
>     error Unknown error: 0
>     pointeur : 1
>     before getspecific key : 13
>     error Unknown error: 0
CRASH

だからndk-stackで私は持っています:

$home>adb logcat | ndk-stack -sym obj
/local/armeabi
********** Crash dump: **********
Build fingerprint: 'archos/G9A80/A80:3.2.1/HTK75D/20120103.181511:user/release-keys'
pid: 7322, tid: 7332  >>> com.prg.main <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Stack frame #00  pc 00012532  /data/data/com.prg.main/lib/libPrg.so (the function where the crash appens): Routine
(the function where the crash appens) in myfile.c:75
...
Stack frame #04  pc 00011770  /system/lib/libc.so (__thread_entry)
Stack frame #05  pc 000112c4  /system/lib/libc.so (pthread_create)
Crash dump is completed

私の問題を解決できるアイデアがあれば、大歓迎です

4

0 に答える 0