현재 ffmpeg+opengl로 플레이어를 만들고 있습니다.
남은그루터기님 강좌를 보고 시작해서
갤럭시S를 베이스 타겟으로 개발해서 640x480이하 해상도는 갤럭시S에서 싱크까지 맞습니다.
그래서 이걸 갤럭시S2 2.3.5에서 테스트 하니 어플이 뻗어버립니다.
logcat에 특별한 오류메세지가 안보여서 dumpstate를 확인하니
05-02 18:27:29.640 22497 22497 I DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-02 18:27:29.640 22497 22497 I DEBUG : Build fingerprint: 'samsung/SHW-M250K/SHW-M250K:2.3.5/GINGERBREAD/EI21:user/release-keys'
05-02 18:27:29.640 22497 22497 I DEBUG : pid: 27409, tid: 27413 >>> com.lonked.activities <<<
05-02 18:27:29.640 22497 22497 I DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000001f
05-02 18:27:29.640 22497 22497 I DEBUG : r0 00000000 r1 ffffffff r2 40012328 r3 400121e8
05-02 18:27:29.640 22497 22497 I DEBUG : r4 47f70000 r5 40012228 r6 00150f60 r7 802a560c
05-02 18:27:29.640 22497 22497 I DEBUG : r8 fffffe84 r9 80000000 10 400121e8 fp 4058d100
05-02 18:27:29.640 22497 22497 I DEBUG : ip 802aad48 sp 4644ad60 lr 802369a4 pc 80235d2c cpsr a0000010
05-02 18:27:29.640 22497 22497 I DEBUG : d0 400000003eaaaaab d1 0000003100000000
05-02 18:27:29.640 22497 22497 I DEBUG : d2 4d8323634247ae83 d3 42c8000000540ff0
05-02 18:27:29.640 22497 22497 I DEBUG : d4 40de30000029f6d8 d5 0000000049000000
05-02 18:27:29.640 22497 22497 I DEBUG : d6 4515a0000006f180 d7 3eaaaaab3f800000
05-02 18:27:29.640 22497 22497 I DEBUG : d8 00004a0b4b8c746f d9 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d10 0000000000000000 d11 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d12 0000000000000000 d13 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d14 0000000000000000 d15 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d16 0000000000000000 d17 3fe999999999999a
05-02 18:27:29.640 22497 22497 I DEBUG : d18 42eccefa43de3400 d19 3fbc71c71c71c71c
05-02 18:27:29.640 22497 22497 I DEBUG : d20 4008000000000000 d21 3fd99a27ad32ddf5
05-02 18:27:29.640 22497 22497 I DEBUG : d22 3fd24998d6307188 d23 3fcc7288e957b53b
05-02 18:27:29.640 22497 22497 I DEBUG : d24 3fc74721cad6b0ed d25 3fc39a09d078c69f
05-02 18:27:29.640 22497 22497 I DEBUG : d26 0000000000000000 d27 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d28 0000000000000000 d29 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : d30 0000000000000000 d31 0000000000000000
05-02 18:27:29.640 22497 22497 I DEBUG : scr 80000010
05-02 18:27:29.640 22497 22497 I DEBUG :
05-02 18:27:29.695 22497 22497 I DEBUG : #00 pc 00035d2c /system/lib/libdvm.so
05-02 18:27:29.695 22497 22497 I DEBUG : #01 pc 000369a0 /system/lib/libdvm.so
05-02 18:27:29.695 22497 22497 I DEBUG : #02 pc 0002077c /system/lib/libdvm.so
05-02 18:27:29.700 22497 22497 I DEBUG :
05-02 18:27:29.700 22497 22497 I DEBUG : code around pc:
05-02 18:27:29.700 22497 22497 I DEBUG : 80235d0c 0a000001 e1a01006 eb014648 e797c008
05-02 18:27:29.700 22497 22497 I DEBUG : 80235d1c e5961000 e59c20ac e1510002 0a0000b5
05-02 18:27:29.700 22497 22497 I DEBUG : 80235d2c e5912020 e3120101 0a000055 e3510000
05-02 18:27:29.700 22497 22497 I DEBUG : 80235d3c e1a03001 0a000021 e5950010 e1510000
05-02 18:27:29.700 22497 22497 I DEBUG : 80235d4c 3a00001e e5953000 e593c00c e5930010
05-02 18:27:29.700 22497 22497 I DEBUG :
05-02 18:27:29.700 22497 22497 I DEBUG : code around lr:
05-02 18:27:29.700 22497 22497 I DEBUG : 80236984 e59a404c e58a1054 e1540003 0a000006
05-02 18:27:29.700 22497 22497 I DEBUG : 80236994 e4930004 e1a01005 e5853008 ebfffccf
05-02 18:27:29.700 22497 22497 I DEBUG : 802369a4 e5953008 e1540003 1afffff8 e28dd00c
05-02 18:27:29.700 22497 22497 I DEBUG : 802369b4 e8bd8ff0 e081b006 e081e404 e58de004
05-02 18:27:29.700 22497 22497 I DEBUG : 802369c4 e16f2f17 e59d3004 e585b014 e1a01005
05-02 18:27:29.700 22497 22497 I DEBUG :
05-02 18:27:29.700 22497 22497 I DEBUG : stack:
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad20 00000012
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad24 80254573 /system/lib/libdvm.so
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad28 00000000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad2c 00000000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad30 00000000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad34 fffffe84
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad38 46314fd8
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad3c 47f70000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad40 40012228
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad44 4052b700
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad48 802a560c
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad4c fffffe84
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad50 80000000 /system/lib/libquramimagecodec.so
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad54 400121e8
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad58 df002777
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad5c e3a070ad
05-02 18:27:29.700 22497 22497 I DEBUG : #00 4644ad60 47f70000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad64 40012228
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad68 0057b200
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad6c 00000000
05-02 18:27:29.700 22497 22497 I DEBUG : 4644ad70 400122fc
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad74 80000000 /system/lib/libquramimagecodec.so
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad78 400121e8
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad7c 802369a4 /system/lib/libdvm.so
05-02 18:27:29.705 22497 22497 I DEBUG : #01 4644ad80 802aad48
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad84 4058d000
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad88 802a560c
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad8c 400121e8
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad90 802a560c
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad94 00000001
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad98 fffffe8c
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ad9c fffffe84
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ada0 00002710
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ada4 802aad48
05-02 18:27:29.705 22497 22497 I DEBUG : 4644ada8 00000001
05-02 18:27:29.705 22497 22497 I DEBUG : 4644adac 80220780 /system/lib/libdvm.so
위와같은 에러가 올라옵니다.
갤럭시S2 ICS버전에서는 싱크가 안맞는 문제가 있지만 실행은 됩니다.
혹시 위와같은 오류를 경험하신분 계신가요?
로그를 봐서는 달빅 VM에서 죽은게 jni 함수 매핑이 잘 못 된게 있을 듯 합니다.
죽는 단말의 /system/lib/libdvm.so를 꺼내 NDK에 있는 arm-linux-androideabi-objdump를 사용해
arm-linux-androideabi-objdump -CS libdvm.so > a.txt 같이 하여 덤프 파일을 구해
로그상에 찍힌 35d2c, 369a0, 2077c 번지를 검색해 보시면 대략적으로 어느 함수를 수행하다 죽는지 알 수 있으니.
찾아보시기 바랍니다.