가상 메모리 끝에 특수 섹션이있는 프로그램을 만들고 싶습니다. 그래서 나는이 같은 링커 스크립트 뭔가를하고 싶어 :링커 스크립트로 시작 스택 포인터를 명시 적으로 설정하십시오.
/* ... */
.section_x 0xffff0000 : {
_start_section_x = .;
. = . + 0xffff;
_end_section_x = .;
}
문제는 그 GCC/LD/glibc는이 알려진 겹치는 경우에도 32 비트 응용 프로그램에 대해 기본적으로이 위치에 스택을로드하는 것 섹션. 위의 코드 0은 스택에서 예외를 발생시킵니다. 스택에 다른 VM 메모리 위치를 사용하도록 링커에 지시 할 수있는 방법이 있습니까? (물론, 나는 힙이 가상 메모리의이 부분을 확장하지 않도록하고 싶다 ...).
대상에 대한 자세한 정보를 제공해야합니다. 초기 레지스터 내용 (스택 위치를 결정 함)은 대상에 따라 다릅니다. –
이것은 arm-8 시스템 (32 비트 모드에서 컴파일)입니다. gcc 4.7.0 툴체인으로 리눅스 3.10 커널을 사용하고 있습니다. – HardcoreHenry