나는 라스베리 파이에서 스택 오버 플로우로부터 안전하게 내 C 코드를 작성하려고합니다. 나는 이것에 초심자이다 그래서 저를 위해 조금 품는다. 함수를 호출하여 바이트 수를 결정하는 한 가지 방법은 알려진 값 (예 : 0xff)을 채워 스택의 공간을 초기화하는 것입니다. 그런 다음 함수를 실행 한 다음 거꾸로 검색하여 스택의 몇 개가 알려진 값에서 변경되었는지 확인합니다. 원래의 스택 깊이와 스택 깊이를 첫 번째 변경되지 않은 값보다 먼저 취함으로써, 그 함수에 의해 사용 된 스택의 양을 결정할 수 있습니다. 나에게 합리적으로 들렸다.함수 호출 후 ARM 스택에서 사용 된 절대 바이트 수 결정?
제 문제는이 어셈블리 물건이 나에게 정말로 혼란 스럽다는 것입니다. asm()을 사용하여 내 C 코드에 ARM 어셈블리 코드를 임베드 할 수 있다고 읽었지만 스택 메모리를 초기화 한 다음 다시 돌아가서 확인하는 방법을 잘 모르겠습니다. 제가 도울 수있는 자원이 있습니까? 나는 조립에 관해서도 거의 알지 못한다. 나는 아주 훌륭한 검색어를 어떻게 짜낼 지조차 모르고있다.
감사합니다.
하나의 기능에 대해 이야기하는 경우 해체를 살펴보십시오. 또한 컴파일 옵션은 스택 사용법에 따라 다릅니다. –