2014-02-10 3 views
1

내가 터미널분할 고장시 Apportable

ROOTED=yes MTP=no apportable debug 
에서 다음 명령을 사용하여 응용 프로그램을 사용하여 안드로이드 에뮬레이터에서 내가 컴파일 Apportable

를 아이폰 OS 응용 프로그램을 실행하고 실행하려고를 사용하여 안드로이드 에뮬레이터에서 iOS 앱을 실행

에뮬레이터는 이러한 설정을 설정입니다 :

Can you install an Android Device Simulator in xcode when using Apportable

그것은 잘 컴파일,하지만 난은 012,349,229를 얻을 수응용 프로그램이 에뮬레이터의 시작 화면에있을 때 세그먼트 오류. bt으로 추적을 시도 할 때 아무 것도 표시되지 않습니다.

나는 행운이없이 오류에 대한 추적을 얻는 방법에 대한 인터넷 검색을 시도했다.

Debugging... 
1871 KB/s (26836917 bytes in 14.005s) 
    pkg: /data/local/tmp/Chaser-debug.apk 
Success 
Starting: Intent { cmp=Cromian.CHASER/com.apportable.activity.VerdeActivity (has extras) } 

Failed to load one the Breakpoints files: 
/Users/Anders/Documents/Xcode/iOS_code/Cromian/Chaser/chaser_app/Chaser.xcodeproj/xcuserdata/Anders.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist 
/Users/Anders/Documents/Xcode/iOS_code/Cromian/Chaser/chaser_app/Chaser.xcodeproj/xcuserdata/Anders.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 

Attaching to pid 1149 
Attached; pid = 1149 
Listening on port 5039 
657 KB/s (9592 bytes in 0.014s) 
GNU gdb (GDB) 7.5-https://github.com/apportable/gdb Jan 3 2014 13:47:56 
Copyright (C) 2012 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "--host=x86_64-apple-darwin12.4.0 --target=arm-elf-linux". 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>. 
Remote debugging from host 127.0.0.1 
warning: Could not load shared library symbols for gralloc.goldfish.so. 
Do you need "set solib-search-path" or "set sysroot"? 
libthread_db:td_ta_new: Probing system for platform bug. 
libthread_db:td_ta_new: Running as root, nothing to do. 
0x40037ebc in epoll_wait() 
    from /Users/Anders/.apportable/cache/devices/emulator-5554/libs/libc.so 
$1 = 1 
$2 = 0 
Breakpoint 1 at 0x5cadf2c8: file /Users/Anders/Documents/Xcode/iOS_code/Cromian/Chaser/chaser_app/Chaser/main.m, line 13. 
Breakpoint 2 at 0x5a1d8ed0 
[New Thread 1169] 

Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 1169] 
0x40005a1e in ??() 
(gdb) bt 
#0 0x40005a1e in ??() 
#1 0x400044d2 in ??() 
#2 0x400044d2 in ??() 
Backtrace stopped: previous frame identical to this frame (corrupt stack?) 

가 어떻게 분할 오류에 대한 원인을 찾을 수 있습니까 : 여기

Terminal의 출력입니까?

(gdb) x/200a $sp 
0x57b7fac0: 0x0 0x0 0x57b7fbe0 0xcb18276c 
0x57b7fad0: 0x0 0x0 0x40015964 0x40015a88 
0x57b7fae0: 0x40015bac 0x40015cd0 0x40010bd4 0x40011064 
0x57b7faf0: 0x40011188 0x400100ac 0x40010cf8 0x40010e1c 
0x57b7fb00: 0x40010f40 0x0 0x28 0x0 
0x57b7fb10: 0xcb18276c 0xcb18276c 0xcb18276c 0x3f000000 
0x57b7fb20: 0x0 0xffffffd1 0x2d0 0x0 
0x57b7fb30: 0x4045adcc 0x2a19da10 0x2a187260 0x4045fcb0 
0x57b7fb40: 0x404584b8 0x1 0x57b80c6c 0x4003ecbb <snprintf+79> 
0x57b7fb50: 0x0 0x0 0x400174c4 0x580ce000 
0x57b7fb60: 0x580ce034 0x40003ff9 0x400175c0 0x57b7fc07 
0x57b7fb70: 0x0 0xfdc 0xffff0208 0x57b7fbe4 
0x57b7fb80: 0xfff 0x26 0x57b7fba8 0x400174c4 
0x57b7fb90: 0x0 0x57b7fbe4 0x2a187260 0x4045fcb0 
0x57b7fba0: 0x404584b8 0x40003f4b 0x57b7fbe4 0x4000 
0x57b7fbb0: 0x3c14001 0x3c10000 0x57b7fbe4 0x4045adcc 
0x57b7fbc0: 0x2a19da10 0x400050bf 0x0 0x4044758f 
0x57b7fbd0: 0x2a187260 0x5a8ff01c <__CFStrAllocateMutableContents+80> 0x584d1040 0x4006b228 <__stack_chk_guard> 
0x57b7fbe0: 0x30025 0x7379732f 0x2f6d6574 0x2f62696c 
0x57b7fbf0: 0x2f6c6765 0x4562696c 0x655f4c47 0x616c756d 
0x57b7fc00: 0x6e6f6974 0x6f732e 0x0 0x0 
0x57b7fc10: 0x0 0x0 0x0 0x0 
0x57b7fc20: 0x0 0x20 0x5a86695c <__CFAllocatorSystemAllocate> 0x0 
0x57b7fc30: 0x57b7fd08 0x1 0x0 0x5844f640 <arena_malloc+1020> 
0x57b7fc40: 0x5b04ae00 0x0 0x1728 0x12 
0x57b7fc50: 0x0 0x10 0x20 0x1 
0x57b7fc60: 0x57b7fc80 0x58449d48 <__wrap_malloc+240> 0x57b7fc78 0x20 
0x57b7fc70: 0x600 0x5d1b9461 0x1 0x5d1b9440 
0x57b7fc80: 0x5d1b9460 0x0 0x5d1b9460 0x0 
0x57b7fc90: 0x0 0x14 0xcb18276c 0x20 
0x57b7fca0: 0x12 0x2 0x57b7fd80 0x1 
0x57b7fcb0: 0xa 0x0 0x5a9d2270 <_MergedGlobals+112> 0x7 
0x57b7fcc0: 0x0 0x5d1b9581 0xcb18276c 0x5d1b9560 
---Type <return> to continue, or q <return> to quit--- 
0x57b7fcd0: 0x5d1b9580 0x0 0x5d1b9580 0x0 
0x57b7fce0: 0x0 0x3 0x0 0x20 
0x57b7fcf0: 0x2 0x1 0x57b7fdd0 0x1 
0x57b7fd00: 0xa 0x0 0x5a9d2270 <_MergedGlobals+112> 0x57b7fe08 
0x57b7fd10: 0x2c78 0x0 0x0 0x57b7fd20 
0x57b7fd20: 0x200078c 0x5a1b6860 <OSAtomicCompareAndSwap32+76> 0x5a86695c <__CFAllocatorSystemAllocate> 0x6325 
0x57b7fd30: 0x584d11a8 0x7fffffff 0xa 0x4004471b <strtol+163> 
0x57b7fd40: 0x5d1b9584 0x57b7fd94 0xa 0x5d1b9583 
0x57b7fd50: 0x5d1b9584 0x1 0x5d1a67e0 0x1 
0x57b7fd60: 0x584d10d0 0x88 0x5d1a67e0 0x5844f65c <arena_malloc+1048> 
0x57b7fd70: 0x584d11a8 0x1 0x584d1040 0x1728 
0x57b7fd80: 0x5d1b95e0 0x0 0x584d1358 0x584d1040 
0x57b7fd90: 0x0 0x5844f640 <arena_malloc+1020> 0x5d1b3cc4 0x0 
0x57b7fda0: 0x1728 0x7c 0x584d1040 0x5a2e64dc <_atomic_lock> 
0x57b7fdb0: 0x20348 0x5b00f660 0x584d1040 0x80860000 
0x57b7fdc0: 0x20348 0x5b00f660 0x80860000 0x5a1b6860 <OSAtomicCompareAndSwap32+76> 
0x57b7fdd0: 0x5cc3a164 <OBJC_CLASS_$_VerdeActivity> 0x5b04ae00 0x5cc3a164 <OBJC_CLASS_$_VerdeActivity> 0x1e 
+0

백 트레이스가 부족하면 GL 드라이버가 손상되는 경우가 있습니다. 시뮬레이터에 대해 잘 모르겠습니다. 또한 x/200a $ sp를 사용하여 콜 트리에 대해 가능한 기호를 찾을 수 있습니다. –

+0

내 앱에서 GL을 사용하지 않습니다. 좋아요. 그 명령을 시도해 보겠습니다. –

+0

'x/200a $ sp' 명령을 사용하여받은 추적으로 질문을 업데이트했습니다. –

답변

0

내가 apportable 사용하여 안드로이드 에뮬레이터를 사용하여 ITerm에서 최신적인 Cocos2D 게임을 포팅 시도 :

편집 : 세그먼트 오류 후, 나는 다음과 같은 추적을 얻을 수있었습니다 명령 X/200A의 $ 특검팀를 사용하여 . 성공적으로 안드로이드 에뮬레이터에서 내 게임을로드하고 테스트했습니다. 안드로이드 장치로 내 응용 프로그램을 테스트하기 위해 새로운 장치를 사지 않기 때문에 이것은 큰 성과입니다. 그래서, 여기에 해결책이 있습니다.

몇 가지 조사를 한 후에 에뮬레이터에서 OpenGLES 드라이버 경로가 부족하여 세그먼트 오류가 발생했음을 발견했습니다. 이 문제를 해결하지 않도록 경우

 
emulator: ERROR: Could not load OpenGLES emulation library: dlopen(libOpenglRender.dylib, 1): image not found
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer. 

을 : OpenGL의 경로가 제대로 찾을 수없는 경우 다음과 같이 터미널에서 에뮬레이터 (AVD 관리자를 통해 추가)를 초기화하는 동안, 단말기는 콘솔에 오류가 표시됩니다 세그먼트 오류가 확실히 발생합니다. 이 문제를 해결하려면 Android sdk 도구의 lib 경로를 내 보내야합니다. 자세한 내용은 here을 확인하십시오.

일단 OpenGLES 드라이버 경로를 수정하십시오. "apportable load" 명령을 사용하여 android 에뮬레이터에 게임을로드 할 수 있습니다. "apportable 디버그"(플래그 포함)는 나에게 효과가 없었습니다. 필자는 에뮬레이터가 아닌 디버깅을 지원하는 장치 만 지원할 것이라고 생각합니다. 에뮬레이터를 거의 추가하지 않았고 결과도 좋았습니다.

참고 : 16GB RAM이 장착 된 Macbook pro Retina를 사용하고 있습니다. 에뮬레이터의 로딩은 많은 RAM과 처리가 필요하기 때문에 조금 느릴 수 있습니다.

해피 포팅과 최고.

+0

OpenGL을 사용하지 않고 UIKit 만 사용하고 있습니다. –