20175212トンHaozhen「情報セキュリティシステム設計の基本」3週目の学習の概要

20175212「情報セキュリティシステム設計の基本」3週目の学習の概要

コンテンツの概要を学びます

Linuxで使い慣れた開発環境

第二に、VIの基本的な操作に精通しています

第三に、GCCコンパイラの基本原則に精通しています

1.フォーマットGCC [オプション] [ファイル名]
-E:のみ前処理コンパイル
アセンブラソースコードCの変換:-Sを
-cを:のみ、接続が行われないコンパイル
(通常コンパイラ上記工程)
-o。出力ファイルを指定して生成された
-Iを:ヘッダファイルのディレクトリを指定
-Iを:ライブラリにリンクするプログラムを指定する
-Lを:ファイルライブラリディレクトリの名前を指定します。

第四に、一般的なオプションのgccコンパイラの熟練使用

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

第五に、熟練した使用のGDBデバッグ手法

  • GDBのプログラムの開発(GDBを起動します)
  • Bブレークポイント(:ラインブレークポイント、ブレークポイント機能、条件付きブレークポイント、一時的なブレークポイントのブレークポイントは、4つの種類を設定します)
  • 実行は、プログラムの実行を開始します
  • BTプリント関数呼び出しスタック
  • Pビューの変数値
  • C次のブレークポイントに現在のブレークポイントから実行を継続
  • シングルステップn
  • シングルステップ
  • GDBを終了終了

ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明

第六に、基本的な原則とメイクファイルの構文仕様に精通しています

プロジェクト内のソース・ファイルはカウントされません、その種類に応じて、機能モジュールは、いくつかのディレクトリに置かれた、メイクファイルを再する必要のあるファイルを、コンパイル必要があるファイルを、コンパイルする必要があるファイルを指定する一連のルールを定義しますオペレーティング・システム・コマンドを実行できるシェル、などのコンパイル、より複雑な機能の操作、スクリプトなどのためのmakefile、。メイクファイルがその恩恵をもたらす- 「オートメーションのコンパイル」を書かれたら、あなただけのmakeコマンドを必要とする、プロジェクト全体が大幅にソフトウェア開発の効率を向上させることができる完全自動のコンパイラです。
1.makefile

testmymath: main.o add.o sub.o mul.o div.o 
gcc main.o add.o sub.o mul.o div.o -o testmymath

2.メイクファイルをコンパイルし、目的のファイルtestmymathを取得

 testmymath: main.o add.o sub.o mul.o div.o 
    gcc main.o add.o sub.o mul.o div.o -o testmymath
    main.o: main.c head.h
    gcc -c main.c
    add.o: add.c head.h
    gcc -c add.c
    sub.o: sub.c head.h
    gcc -c sub.c
    mul.o: mul.c head.h
    gcc -c mul.c
    div.o: div.c head.h
    gcc -c div.c
    
    

ここに画像を挿入説明

七、マスタ生成および静的および動的ライブラリのメソッドを呼び出します

エイトは、Cプログラムのシミュレーションは、モジュール、モジュール原理分解「高凝集力、低いカップリング」と理解しなければなりません

九、リンクの概念を理解します

教科書の学習と問題解決のプロセス

  • 问题1:教材中有提到:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?
  • 问题1解决方案:经过类比以前C和Java的学习得知,应优先使用next。step 就是单步执行,遇到子函数就进入并且继续单步执行;在其他调试其中相当于step-into命令,作用是移动到下一个可执行的代码行。如果当前行是一个函数调用,则调试器进入函数并停止在函数体的第一行。step可以帮助初步揭开代码位置的谜团,例如:函数调用和函数本身可能在不同的文件中。next 是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在其他调试器中相当于step-over,作用是在同一个调用栈层中移动到下一个可执行的代码行。调试器不会进入函数体。如果当前行是函数的最后一行,则,next将进入下一个栈层,并在调用函数的下一行停止

代码调试中的问题和解决过程

  • 问题1:提示找不到头文件ここに画像を挿入説明

  • 问题1解决方案:之前按教材指导将head.h放在另外创建的include文件夹中,导致直接编译时无法找到。在src中拷贝一份即可编译。

    代码托管

ここに画像を挿入説明

上周考试错题总结

其他(感悟、思考等,可选)

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 53/53 1/1 20/20

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • プランの学習時間:XX時間

  • 実際の学習時間:XX時間

  • 改善点:

(利用可能なより多くの参照現代のソフトウェア工学コースウェア
ソフトウェアエンジニア自己評価フォームへの能力を

参考資料

おすすめ

転載: www.cnblogs.com/thz666/p/11568977.html