Please take a look at this questionsmali 코드 구문에서 ".line"은 무엇을 의미합니까? (안드로이드 Smali 코드)
디 컴파일 smali 코드는 .line 3
또는 .line 7
같은 것들을 포함한다.
무엇이 .line
이되어야하는지 이해할 수 없으므로 사용법을 자세히 설명하십시오.
Please take a look at this questionsmali 코드 구문에서 ".line"은 무엇을 의미합니까? (안드로이드 Smali 코드)
디 컴파일 smali 코드는 .line 3
또는 .line 7
같은 것들을 포함한다.
무엇이 .line
이되어야하는지 이해할 수 없으므로 사용법을 자세히 설명하십시오.
.line n
마커는 디버깅 및 스택 트레이스에 사용됩니다. 예외가 포착되지 않거나 스택 추적을 채워야하는 경우 줄 번호는 .line
문에서 가져옵니다. 이것이 없으면 스택 트레이스에 줄 번호가 없습니다.
smali 언어의 거의 모든 부분은 dalvik 바이트 코드 또는 dex 형식의 직접적인 유사점을가집니다.
.line 지시문은 특히 http://s.android.com/tech/dalvik/dex-format.html에 지정된대로 debug_info_item이 정의하는 상태 시스템에서 방출하는 위치 항목에 해당합니다.
smali 코드를 다시 컴파일하려면 .line 마커를 제거 할 수 있습니까? –
@ user2525702 이미 언급 한 내용대로 그렇습니다. 그러나 디버깅이 더 어려워 질 것입니다. – hexafraction
@ user2525702'.line'은 smali의 다음 부분으로 변환되는 원래 자바 소스 코드의 줄입니다. 만약 당신이 그들을 제거하면 아마도 com.foo.bar.Bar (Bar.java:85)에서와 같은 좋은 예외 stacktraces를 얻지 못할 것입니다. – zapl