デバッグはソフトウェア開発サイクルの重要な部分です。それは挑戦的であり、混乱しており、同時に面倒でもあります。一般に、少し大きなプログラムの場合、デバッグは避けられません。近年、デバッグ ツールの開発により、多くのデバッグ タスクが簡単になり、時間の節約が可能になりました。
1 マウスを移動して式の値を表示します
デバッグは難しい場合があります。たとえば、関数内をステップごとに実行することでどこでエラーが発生したかがわかりますし、スタック情報などを見ることで誰が関数を呼び出したかを知ることができます。
でも、いずれにせよ、式やローカル変数の値を見る(式やローカル変数をウォッチウィンドウに入れる)のは非常に面倒です。
もっと簡単な方法は、見たいデータの上でマウスを止めることです。クラスまたは構造体の場合は、クリックして展開すると、そのフィールドをすばやく簡単に表示できます。
2 実行中に変数値を変更します
デバッガーはプログラムのクラッシュや奇妙な動作を分析するツールであるだけでなく、データと動作が正常かどうかを確認するステップバイステップのデバッグを通じて多くのバグを解決することもできますプログラムの期待と一致しています。プログラムが正しく実行されるように、特定の条件を true に設定できないか疑問に思うことがあります。実際には、変数の上にマウスを移動し、値をダブルクリックして、必要な値を入力するだけです。この方法では、コードを変更したり、プログラムを再起動したりする必要はありません。
3 次の実行位置を設定します
典型的なデバッグの場合は、関数が間違った原因を分析するためにステップバイステップのデバッグ方法を使用することがよくあります。このとき、この関数が他の関数を呼び出すことによって返されるエラーが発生しました。このエラーは意図したものではありません。どうすればよいでしょうか?デバッガを再起動しますか?これはより良い方法で、黄色の実行位置矢印を希望の実行位置までドラッグするだけです。実際、これは中間の実行コードをスキップして、目的の場所に直接移動することを意味します。とてもシンプルです。
4 編集して実行を継続する
非常に複雑なプログラムやプラグインを実行するとエラーが見つかりますが、プログラムの再コンパイルや再起動に時間を無駄にしたくないでしょう。
とても簡単で、この場所のバグを修正してデバッグを続けるだけです。 Visual Studio は、プログラムを再起動せずにデバッグを続行できるようにプログラムを変更します。
「編集して続行」機能にはいくつかの制限があることに注意してください。 1 つは、64 ビット コードでは機能しないことです。この機能を使用したい場合は、プロジェクト設定のコンパイル オプションに移動し、ターゲット プラットフォームとして「x86」を選択します。心配しないでください。このターゲット プラットフォームのリリース構成は「デバッグ」とは別のものです。つまり、「任意の CPU」の設定のままです。2 番目に、「編集して実行を続行」機能は、関数内の変更にのみ適用されます。この関数の宣言を変更するか、新しいメソッドを追加したい場合は、プログラムを再起動するか、変更を加えずに続行することしか選択できません。変更されたメソッドにラムダ式が含まれている場合は、デリゲート型が自動的に生成されることを意味します。コンパイラが変更されているため、コンパイラの実行が停止します
5 便利な表示ウィンドウ
最新のデバッガには表示ウィンドウがあり、非常に使いやすく、簡単に実行できます。変数を追加して削除するだけではなく、ウィンドウ内の空白行をクリックして式を入力して Enter キーを押すだけで、不要な式を削除できます。通常の変数値を表示するだけでなく、$handles を入力して開いているハンドルの数を追跡するか、$err を使用して関数のエラー コードを表示します (その後、[ツール]->[エラー] を使用してエラー コードの説明を表示します)。または @eax を入力します。 (@rax under 64-bit) 関数の戻り値を表示するには
6 注釈付き逆アセンブリ
内部逆アセンブリ関数を使用すると、ローカル コードの各行にアセンブリ命令を表示することが容易になります。 C++
7 スタック情報を含むスレッド ウィンドウ
と同様に、任意の場所にブレークポイントを設定してアセンブリ コードを表示および変更できます。マルチスレッドコードのデバッグは苦痛です。も面白いかもしれません。それはデバッガによって異なります。 Visual Studio の優れた機能は、スレッド ウィンドウでスレッドのスタック情報を表示できることです。すべてのスレッドとそのスタック情報を直接簡単に確認できます。
8 条件付きブレークポイント
確率の低いイベントを再現したい場合ですが、ブレークポイントは多数の不必要な条件でもトリガーされます。条件付きブレークポイントを簡単に設定できます。ブレークポイント ウィンドウでブレークポイント条件を設定すると、条件を満たさないブレークポイントは Visual Studio によって自動的に無視されます。
9 Memory Window
一部のバグは、構造定義の誤り、アライメント属性の欠如などが原因で発生します。メモリの各行の内容を表示すると、これらのバグを簡単に見つけて解決できます。Visual Studio のメモリ ウィンドウは、データを 8/16/32/64 ビット数値または浮動小数点数に変換できます。編集ウィンドウで値を直接変更できます。
10 定義にジャンプ
他人が書いたコードのバグを解決していて、「この型は何?」「この関数は何をするの?」といった問題に遭遇した場合、ビジュアルを使用できます。 Studio 定義されたコマンドにジャンプして、型または関数の定義を表示します。
11 Command Window
このちょっとしたトリックはchaauによって提案されたもので、時間を大幅に節約できます。 Visual Studio はコマンド ウィンドウをサポートしており、[表示] -> [その他のウィンドウ] -> [コマンド ウィンドウ] メニューから開くことができます。ウィンドウにさまざまなコマンドを入力して、デバッグを自動化できます。たとえば、非常に簡単なコマンドを使用して MFC の COleDateTime 変数をテストできます。
上記は 11 の Visual Studio デバッグ スキルです。あなたの学習に役立つことを願っています。
Visual Studio のデバッグ スキルに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。