1
- pthread_attr_getstackaddr은 유효한 기본 주소처럼 보이지 않는
0xfffffffffff80000
과 같은 값을 제공합니다. pthread_get_stackaddr_np
과 같이 문서화되어 있으며 문서화되지 않은 것으로 보이며 휴대 가능하지 않은 것으로 알려지면0x00007fff5fc00000
과 같은 가치를 부여합니다. 그러나 내가 임의의 중단 점을 gdb 또는 lldb와 함께 배치하고 stackpointer를 인쇄하면 이 아래에있는 주소 (예 :0x00007fff5fbfe7e0
)를 얻습니다.
모든 작업은 pthread_self
에서 수행되며 결코 스레드를 전환하지 않습니다. 어떤 아이디어?OS X에서 정확한 스택 기본 주소를 얻으려면 어떻게해야합니까?
"주소가 아래에 있습니다". Mac OS X (및 일반적으로 x86 제품군 프로세서)에서 스택은 높은 주소에서 낮은 주소로 커집니다. 따라서 변수는 스택 기본 주소 아래에 있어야합니다. –
@ n.m .: Oh ... 나는 지금 어리 석다. :) –
그걸 답으로 추가 할 수 있다면 받아 들일 수있다. –