ホームページ バックエンド開発 C#.Net チュートリアル Visual Studio のデバッグに関するヒントのまとめ

Visual Studio のデバッグに関するヒントのまとめ

Feb 07, 2017 am 11:13 AM

デバッグはソフトウェア開発サイクルの重要な部分です。それは挑戦的であり、混乱しており、同時に面倒でもあります。一般に、少し大きなプログラムの場合、デバッグは避けられません。近年、デバッグ ツールの開発により、多くのデバッグ タスクが簡単になり、時間の節約が可能になりました。

1 マウスを移動して式の値を表示します

Visual Studio调试技巧汇总

デバッグは難しい場合があります。たとえば、関数内をステップごとに実行することでどこでエラーが発生したかがわかりますし、スタック情報などを見ることで誰が関数を呼び出したかを知ることができます。

でも、いずれにせよ、式やローカル変数の値を見る(式やローカル変数をウォッチウィンドウに入れる)のは非常に面倒です。

もっと簡単な方法は、見たいデータの上でマウスを止めることです。クラスまたは構造体の場合は、クリックして展開すると、そのフィールドをすばやく簡単に表示できます。

2 実行中に変数値を変更します

Visual Studio调试技巧汇总

デバッガーはプログラムのクラッシュや奇妙な動作を分析するツールであるだけでなく、データと動作が正常かどうかを確認するステップバイステップのデバッグを通じて多くのバグを解決することもできますプログラムの期待と一致しています。プログラムが正しく実行されるように、特定の条件を true に設定できないか疑問に思うことがあります。実際には、変数の上にマウスを移動し、値をダブルクリックして、必要な値を入力するだけです。この方法では、コードを変更したり、プログラムを再起動したりする必要はありません。

3 次の実行位置を設定します

Visual Studio调试技巧汇总

典型的なデバッグの場合は、関数が間違った原因を分析するためにステップバイステップのデバッグ方法を使用することがよくあります。このとき、この関数が他の関数を呼び出すことによって返されるエラーが発生しました。このエラーは意図したものではありません。どうすればよいでしょうか?デバッガを再起動しますか?これはより良い方法で、黄色の実行位置矢印を希望の実行位置までドラッグするだけです。実際、これは中間の実行コードをスキップして、目的の場所に直接移動することを意味します。とてもシンプルです。

4 編集して実行を継続する

Visual Studio调试技巧汇总

非常に複雑なプログラムやプラグインを実行するとエラーが見つかりますが、プログラムの再コンパイルや再起動に時間を無駄にしたくないでしょう。

とても簡単で、この場所のバグを修正してデバッグを続けるだけです。 Visual Studio は、プログラムを再起動せずにデバッグを続行できるようにプログラムを変更します。

「編集して続行」機能にはいくつかの制限があることに注意してください。 1 つは、64 ビット コードでは機能しないことです。この機能を使用したい場合は、プロジェクト設定のコンパイル オプションに移動し、ターゲット プラットフォームとして「x86」を選択します。心配しないでください。このターゲット プラットフォームのリリース構成は「デバッグ」とは別のものです。つまり、「任意の CPU」の設定のままです。2 番目に、「編集して実行を続行」機能は、関数内の変更にのみ適用されます。この関数の宣言を変更するか、新しいメソッドを追加したい場合は、プログラムを再起動するか、変更を加えずに続行することしか選択できません。変更されたメソッドにラムダ式が含まれている場合は、デリゲート型が自動的に生成されることを意味します。コンパイラが変更されているため、コンパイラの実行が停止します

5 便利な表示ウィンドウ

Visual Studio调试技巧汇总

最新のデバッガには表示ウィンドウがあり、非常に使いやすく、簡単に実行できます。変数を追加して削除するだけではなく、ウィンドウ内の空白行をクリックして式を入力して Enter キーを押すだけで、不要な式を削除できます。通常の変数値を表示するだけでなく、$handles を入力して開いているハンドルの数を追跡するか、$err を使用して関数のエラー コードを表示します (その後、[ツール]->[エラー] を使用してエラー コードの説明を表示します)。または @eax を入力します。 (@rax under 64-bit) 関数の戻り値を表示するには

6 注釈付き逆アセンブリ

Visual Studio调试技巧汇总 内部逆アセンブリ関数を使用すると、ローカル コードの各行にアセンブリ命令を表示することが容易になります。 C++

7 スタック情報を含むスレッド ウィンドウ

と同様に、任意の場所にブレークポイントを設定してアセンブリ コードを表示および変更できます。

Visual Studio调试技巧汇总

マルチスレッドコードのデバッグは苦痛です。も面白いかもしれません。それはデバッガによって異なります。 Visual Studio の優れた機能は、スレッド ウィンドウでスレッドのスタック情報を表示できることです。すべてのスレッドとそのスタック情報を直接簡単に確認できます。

8 条件付きブレークポイント

Visual Studio调试技巧汇总

確率の低いイベントを再現したい場合ですが、ブレークポイントは多数の不必要な条件でもトリガーされます。条件付きブレークポイントを簡単に設定できます。ブレークポイント ウィンドウでブレークポイント条件を設定すると、条件を満たさないブレークポイントは Visual Studio によって自動的に無視されます。

9 Memory Window

Visual Studio调试技巧汇总

一部のバグは、構造定義の誤り、アライメント属性の欠如などが原因で発生します。メモリの各行の内容を表示すると、これらのバグを簡単に見つけて解決できます。Visual Studio のメモリ ウィンドウは、データを 8/16/32/64 ビット数値または浮動小数点数に変換できます。編集ウィンドウで値を直接変更できます。

10 定義にジャンプ

Visual Studio调试技巧汇总

他人が書いたコードのバグを解決していて、「この型は何?」「この関数は何をするの?」といった問題に遭遇した場合、ビジュアルを使用できます。 Studio 定義されたコマンドにジャンプして、型または関数の定義を表示します。

11 Command Window

Visual Studio调试技巧汇总

このちょっとしたトリックはchaauによって提案されたもので、時間を大幅に節約できます。 Visual Studio はコマンド ウィンドウをサポートしており、[表示] -> [その他のウィンドウ] -> [コマンド ウィンドウ] メニューから開くことができます。ウィンドウにさまざまなコマンドを入力して、デバッグを自動化できます。たとえば、非常に簡単なコマンドを使用して MFC の COleDateTime 変数をテストできます。

上記は 11 の Visual Studio デバッグ スキルです。あなたの学習に役立つことを願っています。

Visual Studio のデバッグ スキルに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語でさまざまなシンボルを使用する方法 C言語でさまざまなシンボルを使用する方法 Apr 03, 2025 pm 04:48 PM

c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

C文字列におけるcharの役割は何ですか C文字列におけるcharの役割は何ですか Apr 03, 2025 pm 03:15 PM

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語のcharとwchar_tの違い C言語のcharとwchar_tの違い Apr 03, 2025 pm 03:09 PM

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語で特殊文字を処理する方法 C言語で特殊文字を処理する方法 Apr 03, 2025 pm 03:18 PM

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

C言語でCharを変換する方法 C言語でCharを変換する方法 Apr 03, 2025 pm 03:21 PM

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語でchar配列の使用方法 C言語でchar配列の使用方法 Apr 03, 2025 pm 03:24 PM

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

See all articles