クライアント アプリケーションが接続できる C++ サーバーがありますが、クライアントが接続した後にサーバーがクラッシュします。コメントアウトすることで原因となっているコードを見つけ、クラッシュしなくなりました。クラッシュする部分は、読み取りの準備ができたときです。クライアントからメッセージを送信する前にクラッシュするため、この時点を過ぎないとわかっています。以下は読み取りコードです
try
{
Logger::Log("Client Listing for message!");
boost::asio::async_read(socket_,
boost::asio::buffer(readMsg_.Data(), Message::header),
boost::bind(&Client::HandleReadHeader, this,
boost::asio::placeholders::error));
}
catch (std::exception& e)
{
Logger::Log("Error: " + std::string(e.what()));
}
編集: try-catch ステートメントはクラッシュするだけで何もキャッチしないため、何が問題なのかわかりません
編集*: このコードを起動する GUI プロジェクトを再作成しました。魔女は dll です。そのプロジェクトを再作成した後、ソリューション内の別のプロジェクト以外に変更はありません。クラッシュすることはなくなりましたが、throw-catch ステートメントがエラーをキャッチするようになりました。
エラー: ネットワーク接続はローカル システムによって中止されました
なぜ中止になったのか不明