ARM을 사용하면 4 가지 이상의 인수가있는 기능이 쌓일 수 있으므로 컨벤션을 호출하는 것에 대해 생각해야합니다. 사용하는 것이 훨씬 안전하다고 생각합니다 gcc의 __builtin_frame_address.
Built-in Function: void * __builtin_frame_address (unsigned int level)
문제
프로파일 링 목적으로 사용 가능한 모든 스택 공간을 특정 문자로 채워야합니다.
우선, C ++에서 Android (일부 컴파일러 특정 기능)에서 안전한 방법이 있습니까? 그렇지 않은 경우 함수에서 선언 된 첫 번째 변수의 주소가 "사용되지 않은"스택의 "시작"이라고 가정 할 수 있습니까? 그렇지 않다면 현재 스택 포인터를 얻는 방법이 있습니까? x86의 ESP 값과 같은 것입니까?
해결책
ARM을 사용하면 4 가지 이상의 인수가있는 기능이 쌓일 수 있으므로 컨벤션을 호출하는 것에 대해 생각해야합니다. 사용하는 것이 훨씬 안전하다고 생각합니다 gcc의 __builtin_frame_address.
Built-in Function: void * __builtin_frame_address (unsigned int level)