2016-07-21 5 views
1

배경 : 디버그 로그를 삽입하려고하는 코드가 있습니다. 이러한 로그를 사용하려면 메서드 당 두 개의 추가 레지스터가 필요합니다.smali 레지스터의 증가/사용/수정

우리가 지금까지 시도한 내용 : 1) 레지스터 증가 - 레지스터로 작동하지 않음> v15가 코드를 위반합니다. 컴파일 시간 검증 오류에 오류하지만 응용 프로그램 충돌 - V250이나 뭐 같은 일부 고 부가가치 레지스터 V0과 V1 레지스터 값을 이동

2), 다음 V0-V1 사용하지 않고 V0-V1 다시 vTMP의 값을 할당 .

답변

0

1) 문제가있는 이유를 잘 알고있는 것 같습니다.

Re : 2) - 확인 오류가 발생하는 경우 잘못 수정하고있는 것입니다. 이를 디버깅하려면 art 및/또는 dalvik이 처음 dex 파일을로드 할 때 (일반적으로 응용 프로그램 설치시)보고 된 실제 검증 오류를 확인해야합니다. 이러한 오류는 대개 꽤 양호하며 문제를 정확하게 지적 할 수있는 충분한 정보를 제공합니다.

새 레지스터를 할당하지 않고 수행해야 할 작업을 수행하는 것이 좋습니다. 예 : 당신은 당신의 새로운 기능을 가진 새로운 메소드를 생성하고 그 메소드에 메소드 호출을 삽입하고 필요한 모든 값/객체를 전달하기 만하면됩니다.

관련 문제