안드로이드 개발자 모임 게시판
(글 수 7,978)
08-23 09:33:34.240: INFO/DEBUG(6768): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-23 09:33:34.240: INFO/DEBUG(6768): Build fingerprint: 'google/passion/passion:2.3.4/GRJ22/121341:user/release-keys'
08-23 09:33:34.240: INFO/DEBUG(6768): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000190
08-23 09:33:34.240: INFO/DEBUG(6768): r0 00000000 r1 40553608 r2 4223a77c r3 00000000
08-23 09:33:34.240: INFO/DEBUG(6768): r4 a930cc80 r5 be828494 r6 0000abe0 r7 40553608
08-23 09:33:34.240: INFO/DEBUG(6768): r8 be8284a8 r9 4214cd1c 10 4214cd04 fp 800a5368
08-23 09:33:34.240: INFO/DEBUG(6768): ip 00000000 sp be828478 lr afd10e60 pc a9305f3e cpsr 60000030
08-23 09:33:34.240: INFO/DEBUG(6768): d0 6e65704f206f7420 d1 5041205345204c47
08-23 09:33:34.240: INFO/DEBUG(6768): d2 6e20687469772049 d3 6e6572727563206f
08-23 09:33:34.240: INFO/DEBUG(6768): d4 7865746e6f632074 d5 6567676f6c282074
08-23 09:33:34.240: INFO/DEBUG(6768): d6 702065636e6f2064 d7 6165726874207265
08-23 09:33:34.240: INFO/DEBUG(6768): d8 432389e9405221f0 d9 432389e900044053
08-23 09:33:34.240: INFO/DEBUG(6768): d10 4429b03b405221f0 d11 000000004429b03b
08-23 09:33:34.240: INFO/DEBUG(6768): d12 0000000000000000 d13 0000000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d14 0000000000000000 d15 0000000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d16 000000004052a1d8 d17 0000000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d18 0000000000000000 d19 0000000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d20 3ff0000000000000 d21 8000000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d22 0000000000000000 d23 ff002e00ba008b00
08-23 09:33:34.240: INFO/DEBUG(6768): d24 ff002e00ba008b00 d25 ff002e00ba008b00
08-23 09:33:34.240: INFO/DEBUG(6768): d26 0100010001000100 d27 0100010001000100
08-23 09:33:34.240: INFO/DEBUG(6768): d28 0100010001000100 d29 3ff0000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): d30 0000000000000000 d31 3ff0000000000000
08-23 09:33:34.240: INFO/DEBUG(6768): scr 80000012
08-23 09:33:34.310: INFO/DEBUG(6768): #00 pc 00005f3e /system/lib/libmedia_jni.so
08-23 09:33:34.310: INFO/DEBUG(6768): #01 pc 0000672a /system/lib/libmedia_jni.so
08-23 09:33:34.310: INFO/DEBUG(6768): #02 pc 00017e34 /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #03 pc 0004968c /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #04 pc 0001d034 /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #05 pc 000220e4 /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #06 pc 00020fdc /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #07 pc 0005fdde /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #08 pc 00067b52 /system/lib/libdvm.so
08-23 09:33:34.310: INFO/DEBUG(6768): #09 pc 0001d034 /system/lib/libdvm.so
08-23 09:33:34.320: INFO/DEBUG(6768): #10 pc 000220e4 /system/lib/libdvm.so
08-23 09:33:34.320: INFO/DEBUG(6768): #11 pc 00020fdc /system/lib/libdvm.so
08-23 09:33:34.320: INFO/DEBUG(6768): #12 pc 0005fc40 /system/lib/libdvm.so
08-23 09:33:34.320: INFO/DEBUG(6768): #13 pc 0004c126 /system/lib/libdvm.so
08-23 09:33:34.320: INFO/DEBUG(6768): #14 pc 00032556 /system/lib/libandroid_runtime.so
08-23 09:33:34.320: INFO/DEBUG(6768): #15 pc 00033402 /system/lib/libandroid_runtime.so
08-23 09:33:34.320: INFO/DEBUG(6768): #16 pc 00008cca /system/bin/app_process
08-23 09:33:34.320: INFO/DEBUG(6768): #17 pc 00014b52 /system/lib/libc.so
08-23 09:33:34.320: INFO/DEBUG(6768): code around pc:
08-23 09:33:34.320: INFO/DEBUG(6768): a9305f1c 4620ebf8 bf00bd10 41f0e92d 460e4c0c
08-23 09:33:34.320: INFO/DEBUG(6768): a9305f2c 447c4605 46204617 ebf0f7ff 68626830
08-23 09:33:34.320: INFO/DEBUG(6768): a9305f3c f8d04639 46303190 46014798 f7ff4628
08-23 09:33:34.320: INFO/DEBUG(6768): a9305f4c 4620ffdd ebe8f7ff e8bd4628 bf0081f0
08-23 09:33:34.320: INFO/DEBUG(6768): a9305f5c 00006d4e e92d4931 447941f0 f7ff4604
08-23 09:33:34.320: INFO/DEBUG(6768): code around lr:
08-23 09:33:34.320: INFO/DEBUG(6768): afd10e40 e2166903 1a000017 e5945000 e1a02004
08-23 09:33:34.320: INFO/DEBUG(6768): afd10e50 e2055a02 e1a00005 e3851001 ebffee24
08-23 09:33:34.320: INFO/DEBUG(6768): afd10e60 e3500000 13856002 1a000001 ea000009
08-23 09:33:34.320: INFO/DEBUG(6768): afd10e70 ebfffe52 e1a01004 e1a00006 ebffee24
08-23 09:33:34.320: INFO/DEBUG(6768): afd10e80 e1a01005 e1a02006 e3a03000 e1550000
08-23 09:33:34.320: INFO/DEBUG(6768): stack:
08-23 09:33:34.320: INFO/DEBUG(6768): be828438 afd4657c
08-23 09:33:34.320: INFO/DEBUG(6768): be82843c 0010c7f0
08-23 09:33:34.320: INFO/DEBUG(6768): be828440 01285fff
08-23 09:33:34.320: INFO/DEBUG(6768): be828444 01000000
08-23 09:33:34.320: INFO/DEBUG(6768): be828448 002d8658
08-23 09:33:34.320: INFO/DEBUG(6768): be82844c 4214cd20
08-23 09:33:34.320: INFO/DEBUG(6768): be828450 4214cd08
08-23 09:33:34.320: INFO/DEBUG(6768): be828454 afd1362d /system/lib/libc.so
08-23 09:33:34.320: INFO/DEBUG(6768): be828458 a930cc80
08-23 09:33:34.320: INFO/DEBUG(6768): be82845c be828494
08-23 09:33:34.320: INFO/DEBUG(6768): be828460 0000abe0
08-23 09:33:34.320: INFO/DEBUG(6768): be828464 40553608
08-23 09:33:34.320: INFO/DEBUG(6768): be828468 be8284a8
08-23 09:33:34.320: INFO/DEBUG(6768): be82846c 4214cd1c
08-23 09:33:34.320: INFO/DEBUG(6768): be828470 df002777
08-23 09:33:34.320: INFO/DEBUG(6768): be828474 e3a070ad
08-23 09:33:34.320: INFO/DEBUG(6768): #00 be828478 be8284c8
08-23 09:33:34.320: INFO/DEBUG(6768): be82847c 0000abe0
08-23 09:33:34.320: INFO/DEBUG(6768): be828480 be828548
08-23 09:33:34.320: INFO/DEBUG(6768): be828484 4214cd24
08-23 09:33:34.320: INFO/DEBUG(6768): be828488 be8284a8
08-23 09:33:34.320: INFO/DEBUG(6768): be82848c a930672f /system/lib/libmedia_jni.so
08-23 09:33:34.320: INFO/DEBUG(6768): #01 be828490 0000abe0
08-23 09:33:34.320: INFO/DEBUG(6768): be828494 40553608
08-23 09:33:34.320: INFO/DEBUG(6768): be828498 4214cd4c
08-23 09:33:34.320: INFO/DEBUG(6768): be82849c be8284c8
08-23 09:33:34.320: INFO/DEBUG(6768): be8284a0 00000007
08-23 09:33:34.320: INFO/DEBUG(6768): be8284a4 80017e38 /system/lib/libdvm.so
위와 같은 Logcat Message를 만난다면 Native 에러를 의심할수있겠지요..
하지만 위에 메세지는 휴머니즘을 찾아볼수가 없어보이네요..
여러분들은 어떻게 NDK Debug 를 하고 계십니까?
1. LOG를 console 에 출력하여 확인한다. (일명 노가다)
2. NVIDIA 에서 제공하는 Plug in 을 활용한다
3. ndk-gdb 를 활용한다.
4. objdump 사용하여 심볼을 얻어내고 add2line 으로 세부 정보를 얻는다
5. 현상만 보고 직감적으로 대충 캐치한다.ㅎ
전 2번을 제외한 나머지 방법으로 해봤는데.. 확실한건 1번이더군요^^
실력이 미흡하여 1번이 확실하게 느껴질지 모르겠지만
다른것들은 정보가 확실하게 올라오는거 같지 않더군요..
또다른 디버깅 방법이 있을까요?
풀소스 빌드 해둔것이 있으면 찾는게 어렵지 않은데요....
미디어 라이브러리같은 것은 고치는 경우도 많아서 사실상 저건 찾기 어려울거 같네요....
다행히 잘되는 경우도 있겠지만요....
저기 툼스톤에 나온 주소만으로도 코드 조회가 가능하니까요... 물론 심볼을 포함한 so가 있어야 하지만요....