2014-04-14 2 views
1
  • pthread_attr_getstackaddr은 유효한 기본 주소처럼 보이지 않는 0xfffffffffff80000과 같은 값을 제공합니다.
  • pthread_get_stackaddr_np과 같이 문서화되어 있으며 문서화되지 않은 것으로 보이며 휴대 가능하지 않은 것으로 알려지면 0x00007fff5fc00000과 같은 가치를 부여합니다. 그러나 내가 임의의 중단 점을 gdb 또는 lldb와 함께 배치하고 stackpointer를 인쇄하면 아래에있는 주소 (예 : 0x00007fff5fbfe7e0)를 얻습니다.

모든 작업은 pthread_self에서 수행되며 결코 스레드를 전환하지 않습니다. 어떤 아이디어?OS X에서 정확한 스택 기본 주소를 얻으려면 어떻게해야합니까?

+2

"주소가 아래에 있습니다". Mac OS X (및 일반적으로 x86 제품군 프로세서)에서 스택은 높은 주소에서 낮은 주소로 커집니다. 따라서 변수는 스택 기본 주소 아래에 있어야합니다. –

+0

@ n.m .: Oh ... 나는 지금 어리 석다. :) –

+0

그걸 답으로 추가 할 수 있다면 받아 들일 수있다. –

답변

1

Mac OS X (및 x86 제품군 프로세서)에서 스택은 높은 주소에서 낮은 주소로 증가합니다. 따라서 변수는 스택 기본 주소 아래에 있어야합니다.

관련 문제