6

私はSTLを多用するアプリケーションをデバッグしています.1日中キーボードでShift-F11を押し込まないようにするために、my.natstepfilterファイルがC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers含まれています.

<?xml version="1.0" encoding="utf-8"?>
<StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010">
  <Function><Name>std::.*</Name><Action>NoStepInto</Action></Function>
</StepFilter>

私が知る限り、これは VS2012 が で始まる関数にステップインしないようにする方法std::です。間違っている場合は修正してください。

これは何の効果もありませんが、デバッガーはすべてにジャンプします。さらに、フィルターをオンにして procmon を実行しVisualizers、デバッグ セッションを開始すると、次のようになります。

ここに画像の説明を入力

したがって、正しいディレクトリ内のすべてを照会しますが、.natstepfilter ファイルではなく、すべての .natvis ファイルを読み取ります。したがって、VSはフィルターを完全に無視するために積極的に何かをしているようです。

これを修正する方法、または解決策をさらに探す場所についてのアイデアはありますか?

追加情報:私はたくさんの拡張機能をロードしましたが、デバッガーとはまったく関係がないようです(VSにフィルターファイルをスキップするように指示することは言うまでもありません)。フィルターが混合モードでは機能しないことを読んだときに、Debugger Typeが明示的に設定されていることを確認するだけです。Native Onlyただし、デバッグ中のアプリケーションはネイティブのみです。x86 プロセスと x64 プロセスの両方のデバッグを試みました。

4

1 に答える 1

0

natstepfilter ファイルは、最初にステップインを試みた後にのみロード (解析) されます。Visual C++ 2012 で導入されたデバッガーの新しいデータ表示拡張機能 (natvis および natstepfilter) は、ネイティブ コードに対して [編集して続行] ([ツール] -> [オプション] -> [デバッグ] -> [編集して続行]) がオンになっている間は機能しません。

于 2014-04-09T06:34:19.250 に答える