가끔 간혈적으로 발생하는 버그는 잡는맛이 있는것 같음



재현하기도 어렵고 .pdb파일 windbg 돌려서 잘 모르겠던걸 겨우 잡았는데



버그의 결론은 스레드 메모리 동기화 문제였고, std::string 타입의 변수 관련해서 잘못된 메모리 참조에서 발생했음.



메모리 접근할때 read와 write하는놈을 따로 분할해서 작성하면 터지지 않고 shared_ptr은 참조 안전성이 있다고 자신감 하나로 짰던 코드쪽이였는데,



개념적으로는 분명히 분할 했고 C++14에선 안터지는 버그가 C++20으로 업그레이드 하면서 컴파일러가 내부적으로 복사 연산이 실행되면서 터지는 것이였음.



허허 shared_ptr 스레드 안정성은 참조뿐이고 개별 메모리 접근은 별개인걸 모르고 버그 터트리는 친구들을 그렇게 욕을 해댔는데 내가 똥멍청이 였음ㅠ



아무튼 어려운 버그 잡고 나니 기분이 좋아졌당ㅎ