본문 바로가기

디버깅

(2)
[안드로이드] Fatal signal 11 (SIGSEGV) at 0x00000008 (code=1) 관련 오류는 Lolipop에서는 아예 일어나지 않는 오류정도 였는데, 요즘 테스트 기기가 킷캣으로 제한되다 보니 멈췄다 하면 로그를 봤을때 다반수가 SIGSEGV 오류인 걸 볼 수 있었다. 골치아픈건 이게 네이티브 레벨에서 일어나는(메모리단에서?) 오류라 코드로 일어나는 부분을 확인하기가 어렵다는 점이다. 덕분인지 원인도, 해결방안도 가지각색으로 나오는 걸 서치해보면 확인할 수 있다. 그중에 분명한건 어느 시점에서 오류가 발생하는 게 느껴질 정도로 빈도가 잦은 구간이 딱 있어서 해당 액티비티 안의 코드를 중점으로 이것저것 작업을 해보고 있다. 관련해서 테스트를 하면서 오류가 발생하는 대로 계속 상처를 덧대듯이 보완사항을 적용해보고, 또 게시글에 업데이트 할 예정이다. 그동안 적용한 해결책은 아래와 같다...
[안드로이드] onClickListener와 onTouchListener에 의한 Memory Leak 잡기 저번에 메모리 leak을 한번 해결했음에도 불구하고 다시 때때로 발생하는 메모리 leak 때문에 골머리를 썩고 있다. 다양하게 발생하고 있는 leakage 중에 onClickListener, onTouchListener와 관련된 부분들이 있었고, 이를 제하기 위해 서치를 했다. 우선 액티비티에서 버튼등에 설정해 준 Listener가 어느 부분에서 선언되느냐, 그리고 어느 곳에서 설정되느냐에 따라 Activity가 종료 된 이후에도 메모리에 관련 값을 참조한 채 상주하게 되는 경우가 있다 판단하였고 해결책으로 설정해두었던 Listener들을 onDestroy 부분에서 다시 null 로 전부 설정해 줌으로써 이후 OnClickListener 관련 Memory Leak이 어느정도 줄어든 것으로 보여진다. 다양..