Visual Studio のデバッグに関するヒントのまとめ
デバッグはソフトウェア開発サイクルの重要な部分です。それは挑戦的であり、混乱しており、同時に面倒でもあります。一般に、少し大きなプログラムの場合、デバッグは避けられません。近年、デバッグ ツールの開発により、多くのデバッグ タスクが簡単になり、時間の節約が可能になりました。
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 サイトに注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

c#.netアプリをAzureまたはAWSに展開する方法は?答えは、AzureAppServiceとAwselasticBeanStalkを使用することです。 1。Azureでは、AzureAppServiceとAzurePipelinesを使用して展開を自動化します。 2。AWSでは、Amazon ElasticBeanstalkとAwslambdaを使用して、展開とサーバーレス計算を実装します。

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

.NetFrameworkはソフトウェアフレームワークであり、C#はプログラミング言語です。 1..netframeworkは、デスクトップ、Web、モバイルアプリケーションの開発をサポートするライブラリとサービスを提供します。 2.C#は.NetFrameWork用に設計されており、最新のプログラミング機能をサポートしています。 3..NetFrameworkはCLRを介してコード実行を管理し、C#コードはILにコンパイルされ、CLRによって実行されます。 4. .NetFrameWorkを使用してアプリケーションをすばやく開発し、C#はLINQなどの高度な関数を提供します。 5.一般的なエラーには、タイプ変換と非同期プログラミングデッドロックが含まれます。 VisualStudioツールは、デバッグに必要です。
