我想用boost :: asio和多線程編寫程序。該程序似乎工作正常,但是當我使用valgrind線程工具drd運行它時,我收到了衝突存儲和加載操作的消息。Valgrind:在多線程程序中發現衝突的存儲/加載
== 13740 ==線程2: == 13740 ==在0x06265ff0大小4 ==在0x40F2B8 13740 ==通過螺紋2衝突的存儲:升壓:: ASIO ::詳細:: epoll_reactor :: descriptor_state: :set_ready_events(unsigned int)(epoll_reactor.hpp:68) == 13740 == by 0x410097:boost :: asio :: detail :: epoll_reactor :: run(bool,boost :: asio :: detail :: op_queue &) (epoll_reactor.ipp:430)
等
的錯誤消息是相當長的,由於所有涉及升壓電話和似乎沒有直接包括我的功能。正如我所說的,該程序似乎可行,但將這些錯誤留在代碼中讓我感覺不好。有沒有什麼好的方法來找到代碼中有問題的位置?
謝謝你的建議
感謝您的回答,雖然我的錯誤信息與服務器示例中引用的錯誤信息不同,但其原因確實可能相同。唯一讓我擔心的是,由於寫入大小不同的字節會產生衝突,所以我不得不在現在的工具幫助下仔細閱讀我的代碼。 – Thorsten