2013-08-16 3 views

답변

10

.line n 마커는 디버깅 및 스택 트레이스에 사용됩니다. 예외가 포착되지 않거나 스택 추적을 채워야하는 경우 줄 번호는 .line 문에서 가져옵니다. 이것이 없으면 스택 트레이스에 줄 번호가 없습니다.

+0

smali 코드를 다시 컴파일하려면 .line 마커를 제거 할 수 있습니까? –

+0

@ user2525702 이미 언급 한 내용대로 그렇습니다. 그러나 디버깅이 더 어려워 질 것입니다. – hexafraction

+1

@ user2525702'.line'은 smali의 다음 부분으로 변환되는 원래 자바 소스 코드의 줄입니다. 만약 당신이 그들을 제거하면 아마도 com.foo.bar.Bar (Bar.java:85)에서와 같은 좋은 예외 stacktraces를 얻지 못할 것입니다. – zapl

0

smali 언어의 거의 모든 부분은 dalvik 바이트 코드 또는 dex 형식의 직접적인 유사점을가집니다.

.line 지시문은 특히 http://s.android.com/tech/dalvik/dex-format.html에 지정된대로 debug_info_item이 정의하는 상태 시스템에서 방출하는 위치 항목에 해당합니다.

관련 문제