boost :: asio 및 다중 스레드를 사용하여 프로그램을 작성하려고합니다. 이 프로그램은 잘 작동하는 것 같지만, valgrind 스레드 도구 drd로 실행할 때 충돌하는 저장소 및로드 작업의 메시지가 표시됩니다.Valgrind : 다중 스레드 프로그램에서 상충되는 저장소 /로드를 찾습니다.
== 13,740 == 스레드 2 == 0x06265ff0 크기 4 == 0x40F2B8에서 13,740 ==에서 스레드 2로 가기 상충 13,740 == 부스트 : ASIO :: 상세히 :: epoll_reactor :: descriptor_state을 : : boost :: asio :: detail :: epoll_reactor :: run (bool, boost :: asio :: detail :: op_queue &) : set_ready_events (epoll_reactor.hpp : 68) == 13740 == 0x410097 : (epoll_reactor.ipp : 430)
등
오류 메시지로 인해 모든 관련 부스트 호출에 다소 긴하고 직접 내 함수를 포함하지 않는 것 같다. 제가 말했듯이, 프로그램은 작동하는 것처럼 보입니다.하지만 코드 안에이 에러들을 남기면 나쁜 느낌을 갖습니다. 코드에서 문제가되는 위치를 찾는 좋은 방법이 있습니까?
답변 주셔서 감사합니다. 오류 메시지가 서버 예제에서 인용 된 것과 다르지만 그 원인은 실제로 동일 할 수 있습니다. 유일한 문제는 8 바이트까지 다양한 크기로 쓰기 충돌이 발생하므로 도구를 사용하지 않고 코드를 신중하게 검토해야한다는 것입니다. – Thorsten