ReSharper 2020.1ヘルプ

C++のデバッグ支援

ReSharperを使用すると、エディターでのデバッグ経験を向上させることができます。

インライン値

C#、VB.NET、またはC++コードのデバッグ中に実行を中断すると、ローカル変数、現在の行の式、および関数の戻り値がエディター内の対応するコード行の横に表示されます。
この機能は、デバッグセッション中に即座にフィードバックを提供します。つまり、監視式または自動ツールウィンドウを参照する必要がないことがよくあります。

インライン値はデフォルトで有効になっていますが、ReSharperオプション(Alt+R,O)のツール | デバッガーページを使用して、表示する値の種類を構成できます。

ReSharperは副作用のない式のみを評価するように注意しています。現時点では、式の評価は参照、定数、メンバーアクセス、および組み込みの添字演算子に限定されています。 std::vector および std::array の添字演算子も例外として評価されます。
ReSharperは式を評価するためにVisual Studioデバッガエンジンを使用してインライン値を計算することに注意してください。つまり、ユーザ提供の視覚化規則を持つナチス(英語)ファイルは自動的にサポートされます。

検索可能なデータヒント

ReSharperは、オプションで、Visual Studioデータチップ(英語)を独自のDataTipsで置き換えることができます。これには、多くの違いがあります。

  • 現在中断されている実行コンテキスト内の特定の値を検索できます。これを行うには、フォーカスがデータヒントにあるときに入力を開始するだけです。検索では、展開されたノード内の値のみが検索されます。

  • データヒントは、マウスポインタを削除したときではなく、DataTipの外側のどこかをクリックすると消えます。

  • このクラスのオブジェクトのカスタムプレゼンテーション文字列を作成するために使用されるクラスのメンバーをマークできます。これを行うには、DataTipでタイプを展開し、目的のデータメンバーを右クリックして強調表示プロパティを選択します。

    ReSharper DataTips: Revealing values for debugged objects

Visual Studio DataTipsの代わりにReSharper DataTipsを使用するには、ReSharperオプション(Alt+R,O)のツール | デバッガーページで対応するオプションを有効にします。

ステップ・フィルター

なぜステップフィルタが必要なのでしょうか? 以下の図は、ほとんどすべてを説明しています。

ReSharper: Why do you need step filters?

関数の中には、非常に単純なものもあれば、非常によくテストされているものもあるため、ステップインする必要がまったくないものもあります。しかし問題は、デバッガーはどの関数がデバッグする価値があるのかないのかを判断できないため、ステップ・インは途中で関数を見落とすことがないということです。

ReSharperを使用すると、ステップフィルタ(ステップ実行時に何をスキップするかをデバッガに指示する関数マスクのリスト)を管理できます。デフォルトでは、このリストには多くのライブラリ関数が含まれており、独自の関数マスクを使って拡張することができます。

カスタムステップフィルタとデフォルトフィルタの変更は階層化設定のメカニズムを使用して保存されます。つまり、ソリューションチーム共有設定レイヤーに保存されたステップフィルタの変更はチームメイトと共有できます。

ReSharperオプション(Alt+R,O)のツール | デバッグ | C++ページでステップフィルターを調べて構成できます。

デバッグ中は、フィルタに関数をすばやく追加できます: その機能で Alt+Enter を押すと、フィルタに追加されます:

ReSharper: Adding a step filter for a function from the editor.

デフォルトでは、このアクションはスマートセーブロジックを使用してフィルタを保存しますが、アクションのサブメニューを使用してフィルタを保存する設定レイヤーを選択することもできます。

Visual Studioには、C++ マイコードのみ(英語)の一部であるC++のステップ動作をカスタマイズする組み込みの方法があることを覚えているかもしれません。ただし、IDEからこの機能を構成するためのユーザーインターフェースは提供されていないため、.natstepfilter XML構成ファイルを手動で編集して、既存のルールを変更または新しいルールを追加する必要があります。さらに、構成ファイルはグローバルであるため、ソリューション固有のルールを追加する方法はありません。ReSharper C++がインストールされている場合、Visual Studioの .natstepfilter ファイルのサポートは現在無効になっています。

最終更新日: 2020年7月2日

関連ページ:

ブレークポイントをナビゲートする

ReSharperを使用すると、ソリューション内のブレークポイント/トレースポイントにすばやくジャンプし、グループ化、検索、プレビュー、およびシンボル名を備えた専用ツールウィンドウですべてのブレークポイントを調べることができます。検索結果ウィンドウのブレークポイントを表示、切り替え、有効/無効にする...

検索結果を分析する

ReSharperのナビゲーション操作と検索操作で複数の結果が得られた場合、これらの結果を検索結果ウィンドウに表示することができます。検索結果ウィンドウは、検索結果を分析するためのさまざまな方法を提供します。必要に応じて、デフォルトの動作を変更して、見つかった単一の使用箇所が検索結果ウィンドウにも表...

ReSharper設定の管理と共有

ReSharperは、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例:記号のアイ...

Clang形式の使用

バージョン2017.2以降、C++ファイル(およびJavaScriptとTypeScriptファイルの一部)では、ReSharperはクラン形式で定義されている書式スタイルをサポートしています。デフォルトでは、Clang-Format設定ファイルは、書式設定の設定のソースとして自動的に使用されます。...

C++でのナビゲーションと検索

名前によるナビゲーション:ReSharperを使用すると、いくつかのキーストロークで任意のコードアイテムまたはファイルを表示できます。ナビゲーションの範囲には、ソリューション全体のシンボルとファイル、標準ライブラリとライブラリのすべてのシンボルとファイル、および外部依存関係が含まれます。ソリューショ...