StackWalk64는 MSDN 설명서에 명시되어 있기 때문에 모든 dbghelp 기능과 마찬가지로 단일 스레드라는 것을 알고 있습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/ms680650(v=vs.85).aspxCaptureStackBackTrace는 단일 스레드입니까?
"이 같은 모든 DbgHelp 함수는 단일 스레드이므로이 함수에 둘 이상의 스레드에서 호출하면 예기치 않은 동작이나 메모리 손상이 발생할 수 있습니다.이 문제를 방지하려면 모든 동시 호출을 동기화해야합니다 두 개 이상의 스레드에서이 함수로. "
그러나 CaptureStackBackTrace에 대한 MSDN 설명서는 CaptureStackBackTrace가 단일 스레드인지 여부를 나타내지 않으므로 http://msdn.microsoft.com/en-us/library/windows/desktop/bb204633(v=vs.85).aspx은 표시하지 않습니다.
빠른 답변을드립니다.
아마도 스레드 안전하고 단일 스레드가 아닙니다. CaptureStackBackTrace가 다중 스레드를 사용하여 작업을 수행하는지는 상관하지 않습니다. 여러 스레드에서 호출하는 것이 안전한지 신경 써야합니다. – agbinfo
나는'StackWalk64()'이 호출하는 쓰레드의 스택을 걷고 있다면 thread-safe하다고 생각한다. 그러나 다른 스레드의 스택을 걷는 중이라면 동기화가 필요할 것입니다. –