1. 程式人生 > >2018-2019 20165235 《信息安全系統設計基礎》第一周

2018-2019 20165235 《信息安全系統設計基礎》第一周

png bin lean 所有 文件名 -c printf 開始 圖片

測試1-vi

  1. 每個.c一個文件,每個.h一個文件,文件名中最好有自己的學號
  2. 用Vi輸入圖中代碼,並用gcc編譯通過
  3. 在Vi中使用K查找printf的幫助文檔
  4. 提交vi編輯過程截圖,要全屏,包含自己的學號信息
    這是編寫好的文件以及文件夾目錄:
    技術分享圖片
    這是vi中的printf幫助文檔,首先cd src/main.c 通過hjkl鍵將光標移動到printf上去,按大寫的K即可:
    技術分享圖片
    這是編譯.c文件以及運行結果:
    技術分享圖片
    技術分享圖片

    測試2-gcc測試

  5. gcc 進行預處理,編譯,匯編,鏈接vi輸入的代碼
  6. 生成的可執行文件中要有自己的學號
  7. 提交預處理,編譯,匯編,鏈接,運行過程截圖,要全屏,包含自己的學號信息
    預處理:gcc -E -I include src/*.c -o bin/*.i


    技術分享圖片
    編譯:gcc -S -I include bin/*.i -o bin/*.s
    技術分享圖片
    匯編: gcc -c -I include bin/*.s -o bin/*.o
    技術分享圖片
    鏈接:cd bin gcc *.o -o test
    技術分享圖片

    使用到的命令

    1.gcc -E .c -o .i編譯預處理
    2.gcc -S .i -o .s產生匯編代碼
    3.gcc -c .s -o .o 進行匯編
    4.gcc * .o -o XXX生成可執行文件
    5.ls顯示文件列表

    測試3-gdb測試

  8. 用gcc -g編譯vi輸入的代碼
  9. 在main函數中設置一個行斷點
  10. 在main函數增加一個空循環,循環次數為自己學號後4位,設置一個約為學號一半的條件斷點
  11. 提交調試過程截圖(一定包含條件斷點的),要全屏,包含自己的學號信息
    首先要gcc -g來生成一個可執行文件,打開gdb調試,然後設置行斷點 b 9(第九行)
    技術分享圖片
    技術分享圖片
    輸入r開始調試:
    技術分享圖片
    設置條件斷點:
    技術分享圖片

     gdb相關命令

    1.set args 可指定運行時參數。(如:set args 10 20 30 40 50 )
    2.show args 命令可以查看設置好的運行參數。
    3.run (r)啟動程序。
    4.pwd顯示當前的所在目錄。
    5.break設置斷點,可以簡寫為b
    6.b X(整數) 設置斷點,在源程序第X行
    7.b func設置斷點,在func函數入口處
    8.info b 查詢所有斷點
    9.b X(整數) if i==X

    設置條件斷電,在for循環後一行設置。

    測試4-靜態庫的測試

  12. 除了main.c外,其他4個模塊(add.c sub.c mul.c div.c)的源代碼不想給別人,如何制作一個mymath.a靜態庫?main.c如何使用mymath.a?
  13. 提交靜態庫生成和調用過程截圖(一定包含條件斷點的),要全屏,包含自己的學號信息
    加上-g將.c文件編譯成.o文件,輸入圖上指令生成一個mymath.a的靜態庫文件,然後用mymath.a文件生成一個可執行文件test
    技術分享圖片
    對可執行文件的調試:
    技術分享圖片

    測試5-共享庫

  14. 除了main.c外,其他4個模塊(add.c sub.c mul.c div.c)的源代碼不想給別人,如何制作一個mymath.so共享庫?main.c如何使用mymath.so?
  15. 提交共享庫生成和調用過程截圖(一定包含條件斷點的),要全屏,包含自己的學號信息
    輸入圖上代碼生成一個共享庫文件,並用共享庫文件生成一個可執行文件:
    技術分享圖片
    對可執行文件的調試:
    技術分享圖片

    測試6-Makefile

    1 寫出編譯上面vi編輯代碼的makefile,編譯出來的目標文件為testmymath, 只用顯式規則就可以.
    2 提交Make過程截圖,要全屏,包含自己的學號信息
    首先 vim Makefile:(第二行開頭使用Tab鍵)
    技術分享圖片
    然後在shell中輸入make
    技術分享圖片
    運行生成的目標文件:
    技術分享圖片

    在編輯makefile文本時需註意:一個Makefile文件主要含有一系列的規則,每條規則包含一下內容:一個目標,即make最終需要創建的文件,如可執行文件和目標文件;目標也可以是要執行的動作,如‘clean’;一個或多個依賴文件的列表,通常是編譯目標文件所需要的其他文件。之後的一系列命令,是make執行的動作,通常是把指定的相關文件編譯成目標文件的編譯命令,每個命令占一行,並以tab開頭。

2018-2019 20165235 《信息安全系統設計基礎》第一周