アプリケーション検証ツールの下で、ネットワーク経由でクライアントを処理するアプリケーションを実行しようとしています。
アプリケーションは、クライアントを維持するためのマップと、マップをロックするための最大カウント 1 のセマフォを保持します。
ベリファイアがなくてもエラーなしで実行されますが、ベリファイアがアタッチされていると、次のランタイム エラーが発生します。
map/set イテレータはインクリメント不可
次のコードの場合:
Lock l(_mapLock); // This object uses a semaphore for synchronization
MapType::iterator it;
ClientInfo info;
it = _clientsMap.begin();
for (it = _clientsMap.begin(); it != _clientsMap.end(); it++) {
(*it).second->getInfo(&info);
if (strcmp(info.ip, clientIp.c_str()) == 0) {
return DUPLICATE_CLIENT;
}
}
考えられる原因について何か考えはありますか?
前もって感謝します。