VS2010 RC -100 STD ::デバッガーのマップ要素
-
22-09-2019 - |
質問
STD ::マップコンテナのすべての要素を見たいときに、2010年のRCでアプリをデバッグする際に小さな問題があります。
デバッガーがブレークポイントに到達し、要素検査官(マウスで変数名をホバリングした後の「ローカルズウィンドウとポップアップウィンドウ)のマップの値を確認し、スクロールしています。要素は100要素で停止し、次の要素はできません。マップには200以上の要素が含まれています(Mapのカウンターパラメーターにこれを適切に示しています)が、要素検査官でそれらすべてを表示することはできません。
問題は、最も単純なものであっても現れます std::map<int, int>
200のINT値で満たされています。
たぶんこれは設定の問題ですが、私はそれらの多くの組み合わせを試しましたが、それでも機能しません。たぶん誰かがこれを解決する方法をいくつか持っています。
よろしくお願いします。
解決
名前付きイベントを使用する( createEvent とwaitforsingleObject API関数)。バリアごとに2つのイベントが必要になります - アプリケーションの別のインスタンスで作成されたイベントごとに。それから両方のインスタンスは互いのイベントを待ちます。もちろん、これらの事象は後で別の障壁のために再利用することができます。
しかし、イベント名がグローバルに一意であると、それぞれのイベントのために、各イベントには異なる名前があるかもしれません。そのため、アプリケーションの各インスタンスは、別のインスタンスによって作成されたイベントの名前を見つけるために別のインスタンスのIDを取得する必要があります。
ウィンドウアプリケーションがある場合は、最初のインスタンスの存在に関する2番目のアプリケーションにインスタンスを通知するメッセージをブロードキャストできます。
他のヒント
VS 2010 SP1では、この制限は2000エントリのデフォルト値に増加しました。これは、レジストリキーを設定することで変更することもできます(レジストリの変更に関するすべての標準警告は、ここに適用されます):
- x86:hkey_local_machine software microsoft visualstudio 10.0 nativede visualizermaxchildren
- x64:hkey_local_machine software wow6432node microsoft visualstudio 10.0 nativede visualizermaxchildren
Scot Brennecke、エスカレーションエンジニアMicrosoft VC ++サポート