"이벤트 대기열"을 사용하여 다른 스레드에서 함수를 실행하는 네이티브 C++ 프로그램이 있습니다. 나는 힙에 "이벤트"클래스를 할당하고 실행을 위해 내 스레드의 대기열 중 하나에 배치합니다.전 처리기를 사용하여 컴파일시 해시를 계산하고 저장하는 방법?
모두 훌륭하지만, 이러한 "이벤트"의 출처를 추적하는 것은 매우 어렵습니다. 나는 각 "사건"이 그것이 어디에서 왔는지에 관한 정보를 저장하고 싶다. 지금은 내재적 인 _ReturnAddress()
을 사용하고 있지만 파일 이름 문자열과 줄 번호도 갖고 싶습니다. 매크로를 사용하여 내 "일정"을 예약하는 것이 좋습니다.
물론 나는 이러한 문자열을 갖는 것에 대해 가격을 지불하고 싶지 않습니다.
사전 처리기를 구축하고 덤프하여 "id"=> "file, line"의 맵을 파일로 만들 수있는 방법이 있습니까? "id"는 매크로가 확장 될 때마다 증가하는 고유 번호입니다. ? 나는이 신분을 나의 기원으로 저장할 수 있었다.
또는 런타임에 사용할 수 있도록 파일 이름의 매우 짧은 해시를 계산할 수 있습니까?
모든 아이디어를 환영합니다.
흥미로운 아이디어. StackWalk64를 좀 더 살펴보아야 할 것입니다. 원점을 원한 이유는 앱이 충돌 할 경우를 대비 한 추적 용도입니다. 메시지 루프 내에서는 항상 실패하기 때문에 메시지가 어디에서 왔는지 전혀 알 수 없습니다. 디버그 빌드를 추적하는 데 약간의 시간이 걸리지 만 프로덕션을 위해 뭔가를 원합니다. –
그럼 StackWalk64를 확실히 살펴볼 것입니다. – Michael