[ヒント] vs2019 のデバッグ

1. コンピュータのバグの起源

  コンピューター用語「バグ」の最も有名な起源の物語は次のとおりです。1943 年、第二次世界大戦の真っ最中に、ホッパーはアメリカ海軍で働いていました。Mark-1 コンピューターは巨大だったので、不具合があった場合、それを見つけるのは困難でした。しかし、内部構造に蛾が閉じ込められていたため、ホッパーは最終的に問題を発見しました。彼女はノートにこの蛾の標本を作り、その隣に9月9日の日付の記事を書きました。海軍のウェブサイトによると、これは実際にバグが発見された初めてのケースであり、バグという言葉の由来となった。

ここに画像の説明を挿入します
登場人物: ホッパー、
ここに画像の説明を挿入します
  あなたが見ているものは真実なのでしょうか?
 ホッパー氏の論文は、彼女や他の人々が蛾事件の数年前からコンピューターの問題を指す言葉としてこの用語を使用していたことを示している。実際、このバグはホッパー自身よりも前から存在していました。オックスフォード英語辞典によると、この言葉が最初に登場したのはエジソンについて説明した新聞でした。1889年、ポール・モール・ガゼットの記者は「エジソン氏は問題解決を表現する際に使われる『バグ』の修正に2晩費やした。まるで蓄音機の中にこの問題を引き起こしているバグが隠れているようなものだ」と書いた。しかし、バグという言葉は、この報告書のずっと前の 1876 年にはエジソンの個人的な日記や手紙に登場していました。
 では、エジソンはどのようにしてこの言葉を思いついたのでしょうか?「Computer World」は、この言葉はモンスターを意味する古代の言葉にまで遡ることができると指摘しています。これは、バガブー (迷惑または恐ろしいこと) などのいくつかの珍しい単語に今でも存在します。しかし、エジソンは文字通りのバグからこの言葉を作りました。彼は、機械の穴に虫が閉じ込められているのを想像しました。「技術的なバグは、商業的に成功するか失敗するかの前に、その正体を現すまでに数か月の観察、研究、労力が必要です。結局のところ、あなたはアパートを見ているのです。そこに住んでいる間はゴキブリに決して気付かないでしょう、彼らはいます。」では、
 なぜ虫について話すとき、ホッパーガの事件が最初に思い浮かぶのでしょうか? これもやはりホッパー自身のおかげです。なぜなら、1944 年以降の数年間、彼女はコンピューターの中の蛾の話を何度も繰り返し、ある時点で次のように付け加えたからです。はデバッグと呼ばれます

2. デバッグ

1. デバッグの定義

 プログラミング後は、さまざまな手段を使用してエラーを確認し、トラブルシューティングを行ってくださいプログラムの正しさは、通常の機能の完了に反映されるだけでなく、さらに重要なことに、予期せぬ状況に正しく対処できるかどうかにも反映されます。心理学的観点から見ると、開発者とデバッガーは同一人物であるべきではありません

2.デバッグの基本手順

1. プログラム エラーの存在を発見します。
2. エラーを特定し、除去して
エラーを特定します。 3. エラーの原因を特定します。
4. エラーを修正するための解決策を提案します
。 5. プログラム エラーを修正し、再テストします。

すべてのデバッグは、事件を解決し、いくつかの手がかりを検索し、最終的にバグを見つけるプロセスです。

2.リリースとデバッグの違い

  デバッグ バージョン: 通常はデバッグ バージョンと呼ばれ、デバッグ情報が含まれており、プログラマがプログラムをデバッグしやすいように最適化は行われません
  リリース バージョン: リリース バージョンと呼ばれ、ユーザーがデバッグできずに使いやすいように、コード サイズや実行速度の点でプログラムを最適化するためにさまざまな最適化が行われることがよくあります。

3. デバッグ用のショートカットキー

1. F5: デバッグの開始
2. Ctrl+F5: 実行の開始 (デバッグなし)
3. Shift+F5: デバッグの停止
4. Ctrl+Shift+F5: デバッグの再開
5. F9: ブレークポイントの有効化/無効化
6. Ctrl+F9 :ブレークポイントを停止
7. Ctrl+Shift+F9: すべてのブレークポイントを削除
8. F10: ステップバイステップ
9. Ctrl+F10: カーソルまで実行
10. F11: ステートメントごとに実行

4. その他の機能のショートカットキー

1. ウィンドウのショートカットキー

ヒント: ウィンドウにリンクされているショートカット キーには W (Windows) が必要です。Ctrl+W、W: ブラウザ ウィンドウ (ウィンドウ ショッピングの youdao の翻訳はウィンドウ ショッピングです
)

Ctrl+W,S: ソリューション マネージャー (ソリューション)

Ctrl+W,C: クラスビュー (クラス)

Ctrl+W,E: エラーリスト(エラー)

Ctrl+W,O: 出力ウィンドウ (出力を出力します。プログラムのコンパイル情報を出力します。vs の
「ツール」-「オプション」-「デバッグ」-「出力ウィンドウ」で表示する必要がある情報を設定できます)

Ctrl+W,P: プロパティウィンドウ(プロパティ)

Ctrl+W,T: タスクリスト(タスク)

Ctrl+W
、キーは「X」です)

Ctrl+W,B: ブックマーク ウィンドウ (ブックマーク ブックマークは非常に使いやすいです。コードが数千行ある場合、コードを探すときにブックマークを追加すると、コードを探すのが大幅に速くなります)

Ctrl+W,U: ドキュメントのアウトライン (OutLine、2 番目の文字 U を使用)

Ctrl+D,B: ブレークポイントウィンドウ (ブレークポイント)

Ctrl+D,I: イミディエイトウィンドウ (即時)

2. プロジェクト機能のショートカット キー**

ルール: Ctrl は必須のファンクション キーであり、Shift はプロジェクトに機能を追加します。

CTRL + F6 /CTRL + TAB 次のドキュメント ウィンドウがアクティブなフォーム スイッチになります (Windows オペレーティング システムでは、Alt + Tab はタスク間の切り替えを意味します)

CTRL + SHIFT + F6 /CTRL + SHIFT + TAB 前のドキュメント ウィンドウ (Windows システムの操作では、
Shift に逆の機能があることは誰もが知っていると思います。笑、ここに反映されています)

F7: コードの表示 (Web フォーム開発では、バックグラウンド コードを表示します)

Shift+F7: フォーム デザイナーを表示します (この方法は、cs ファイルがバックグラウンドにあるときに、フォアグラウンドの .aspx ページにジャンプするのに非常に便利です)

Ctrl+Shift+N: 新しいプロジェクトを作成します (N は新規を意味するため、プロジェクト内に新しいプロジェクトを強制する必要がある場合は、キーの組み合わせは Ctrl+Shift+N です)。

Ctrl+Shift+O: プロジェクトを開く (開く)

CTRL + SHIFT + C でクラス ビュー ウィンドウが表示されます (C はクラスの略)

CTRL + F4 でドキュメント ウィンドウを閉じます (QQ を使用したことのある人は全員、Alt + F4 を使用して現在のチャット ウィンドウを閉じたことがあると思います。Ctrl + Tab を使用して
アクティブなタブ ウィンドウを切り替えることを考えれば、現在のタブを閉じる理由がわかるでしょう)ウィンドウは Ctrl+F4)

CTRL + SHIFT + E でリソース ビューが表示されます (E は Explorer の略)

CTRL + SHIFT + B でソリューションを生成します (B はビルドを表し、F6 を使用しても実行できます)

Shift+F6 は、現在のプロジェクトを生成することを意味します (前述したように、f6 を使用してソリューション全体を生成できます。現在のプロジェクトの生成の場合は、当然ファンクション キー Shift を追加します)。

F4 でプロパティ ウィンドウを表示 SHIFT + F4 でプロジェクト プロパティ ウィンドウを表示

Ctrl+Shift+S: すべて保存 (S は保存の略です。ここではすべて保存を意味します。1 回の保存だけの場合、Ctrl+S はプロジェクト全体とは何の関係もありません。すべて保存という概念は、プロジェクト全体を意味する必要があります
。プロジェクトなので、キーの組み合わせでは当然シフトが発生します)

Ctrl+Shift+A: 新しい項目を作成します (A は追加を意味します)

Shift+Alt+C: 新しいクラスを作成します
(Shift はプロジェクトに関連するファンクション キーです。Alt はスペースの隣でよく使用されます (よく使用されます)。C は Class です。クラスの追加はよく使用されます。したがって当然のことです) :Shift+Alt+C)

3. 関連するショートカット キーを見つける

Ctrl+F: 検索(Find) Ctrl+Shift+F: ファイル内を検索(前述の通り、Shiftはプロジェクト内を意味するので、プロジェクト内のファイルを検索する必要がある場合は当然Shiftは必須です) F3:
次を検索
(Windows システムを使用したことがある人なら、f3 が検索のショートカット キーであることを知っていると思います) Shift+F3: 前のキーを検索します (Shift にはここで逆の機能があります) Ctrl+H: 置換 Ctrl+Shift+H: Inファイル
を置き換える

4. コードショートカットキー

Ctrl+E,D (ctrl+k,d) - すべてのコードをフォーマットし、コードを即座に整理します。

Ctrl+E,F —-選択したコードをフォーマットします

Ctrl+K,C: 選択したコンテンツに注釈を付ける

Ctrl+K、U: 注釈コンテンツの選択を解除します。

Ctrl+J /Ctrl+K,L: メンバーをリストするためのスマート プロンプト (カーネル コア コンテンツ リストのリスト。
オブジェクトのメンバーの特定の情報を表示したい場合は、このショートカット キーを試してください)

Ctrl+K,P: パラメータ情報 (カーネルコアの内容 パラメータ パラメータ
このキーの組み合わせは、メソッドの特定のパラメータを表示したい場合に非常に便利です)

Ctrl+K,I: 情報を素早く表示 (情報)

Ctrl+K,S: 外部コード (私は通常、#region を時々使用します。region を使用すると、コードが特にきれいに見えます。

CTRL + M、CTRL + M 現在のメソッドを折りたたむか展開します

CTRL + M、CTRL + O すべてのメソッドを折りたたむ

CTRL + M、CTRL + L ですべてのメソッドを展開 CTRL + M、CTRL + P ですべてのメソッドを展開

Ctrl+M,P: アウトライン表示を停止します (region を使用してコードを折りたたんだ後、このキーの組み合わせのセットを使用して、折りたたみと展開の効果を体験してみてください) Ctrl+shift+f10: using 名前空間を自動的に追加します (インスタンス化されたオブジェクト内
、よく使われます)

5. ショートカットキーを編集する

Shift+Alt+Enter: 全画面編集に切り替えます

F12: 呼び出されたプロシージャまたは変数の定義に移動します

Alt+F12: シンボルを検索 (すべての検索結果をリスト表示)

Shift + F12: すべての参照を検索します (単語の上にカーソルを置き、Shift + F12 を押します)

Ctrl+U: すべての SQL ステートメントを小文字に変換します (パフォーマンスを向上させるために、すべての SQL ステートメントを大文字に変換します)

Ctrl+Shift+U: すべてを大文字に変更します (U は大文字を意味します)

Ctrl+Shift+V: クリップボード ループ

Ctrl+Shift+L: 現在の行を削除

Ctrl+E,S: 空白スペースを表示 (Ctrl+r,w で空白スペースを表示したり、タブマークを表示または非表示にしたりすることもできます)

Ctrl+E,W: 自動行折り返し

Ctrl+G:指定行へ移動(特定行へジャンプしたい場合に使用すると非常に便利です)

Shift+Alt+矢印キー: 長方形のテキストを選択 Alt+マウスの左ボタン: 長方形のテキストを選択

CTRL + DELETE で単語の末尾まで削除 CTRL + BACKSPACE で単語の先頭まで削除 SHIFT + TAB でタブ文字をキャンセル

Ctrl + 左右の矢印キー: 一度に 1 単語ずつ移動します

Ctrl+クリック: 現在クリックされている単語全体を選択します

SHIFT + END で行末まで選択 SHIFT + HOME で行頭まで選択

CTRL + SHIFT + END で文書の最後まで選択します CTRL + SHIFT + HOME で文書の最後まで選択します

CTRL + SHIFT + PAGE UP でこのページの先頭まで選択します CTRL + SHIFT + PAGE DOWN でこのページの最後まで選択します

CTRL + PAGE DOWN カーソルはウィンドウの上に位置します CTRL + PAGE UP カーソルはウィンドウの下に位置します

CTRL + END 文書は最後に配置され、CTRL + HOME 文書は先頭に配置されます。

Tab を 2 回押して、コード セグメントをすばやくアクティブにします (write for、foreach ループ、または try およびバインド イベント メソッド)。

Ctrl+マイナス記号: カーソルの最後の位置に戻ります

5. 典型的な例

#include <stdio.h>

int main()
{
    
    	
	int i = 0;
	
	int arr[10] = {
    
     1,2,3,4,5,6,7,8,9 };
	
	for (i = 0; i <= 12; i++)
	{
    
    
		arr[i] = 0;
		printf("%d", arr[i]);//死循环
	}
	
	return 0;
}

図:
ここに画像の説明を挿入します

6. コードを書くための良い習慣

  1. アサートを使用する - ヘッダー ファイル:assert.h
  2. constを使ってみる
  3. 適切なコーディングスタイルを開発する
  4. 必要なコメントを追加する
  5. コーディングの落とし穴を避けてください。

例: strcpy の実装をシミュレートする

char * strcpy(char * dst, const char * src)
{
    
    
	char * cp = dst;
	assert(dst && src);
	while( *cp++ = *src++ )
	{
    
    
	   ;
	}
	return( dst );
}

図:
ここに画像の説明を挿入します

7.constの役割

座右の銘:近くにいる人は動けない。

int main()
{
    
    
	int a = 10;
	int b = 0;
	int* p = &a;
	return 0;
}

ここに画像の説明を挿入します

8. プログラミングにおけるよくある間違い

7.1 コンパイル エラーの場合は、
エラー メッセージを直接確認 (ダブルクリック) して問題を解決してください。あるいは、経験を積めばできるようになります。比較的シンプル。
7.2 リンクタイプのエラーの場合は、
エラー メッセージを確認し、主にコード内のエラー メッセージ内の識別子を見つけて、問題を特定します。通常、識別子名は存在しないか、スペルが間違っています。
7.3 ランタイム エラーは、
デバッグを使用して問題を徐々に特定します最も難しいことです。

要約する

 デバッグスキルを身につけるには、実際の状況で一歩ずつ経験を積む必要があります。最終的には誰もが大きな人になります。記事が良いと思ったら、3 回連続で報酬を与えるのもいいでしょう! ありがとう!

おすすめ

転載: blog.csdn.net/Shun_Hua/article/details/128457512