偵錯程式:gdb
1.gnu計畫的工具;核心除錯kgdb
2.程式的錯誤分類:編譯時錯誤:語法錯誤 執行時錯誤:記憶體錯誤,邏輯錯誤
3.gdb的功能:1執行程式;2設定斷點;3檢視變數值
4.hello.c gcc -g hello.c -o hello
gcc gdb
5.使用
–tui:
layout asm
layout src
layout split
(run finish continue)
斷點(break +行號
break+函式名
break+行號 if條件
info break
delete+break)
(enable +斷點編號
disable+斷點編號)
單步執行:step next
工程管理器:make(-make -cmake)—實現自動編譯(根據makefile實現)
編譯很多個檔案(型別不同、存放不再不同目錄、資源檔案使用)組成的軟體**結構 --實現自動編譯(根據makefile檔案的內容進行)。
「自動編譯」:
(1)根據makefile檔案的內容進行自動編譯;
(2)根據檔案的時間戳來判斷檔案是否需要編。
單個.c — gcc hello.c -o hello;
10000個.c (分別儲存在100個不同目錄) – gcc *.c -o hello。
2、make讀取makefile內容(如何編寫makefile檔案?)
(1)makefile是個指令碼檔案(批處理)
(2)makefile語法: 目標、依賴、命令
格式:目標:依賴、按下tab命令。
(3)執行命令,依賴這個檔案,最終生成目標。
(4)makefile執行順序:自上向下,當你的目標依賴的檔案又是有乙個目標時,會先跳轉到該目標去執行相關命令。
(5)make +目標名:從該目標開始自.上向下執行。
(6)偽目標:執行命令,不生成對應的檔案。phony: lclean install。
3、為什麼將.c檔案先編譯生成.o檔案,再由.o檔案生成可執行檔案?
前提:原始檔到可執行檔案:預處理、編譯、彙編、鏈結(1s)
gcc hello.c -0 hello 4s
cal:main.c add.c sub.c div.c mul.c
gcc *.c -0 cal
假設修改了add.c — make: 20s
假設修改了add.c — make:(.c -->.0) 第一次:20s,第二次:4s+4s=8s。
4、功能目錄管理軟體**:
makefile:(閱讀makefile的順序1-3)
2.總控makefile:進入各個功能目錄執行make,並將所有.o檔案鏈結生成可執行檔案。
3.功能目錄makefile:將功能目錄下的原始檔編譯生成目標檔案.o。
1.scripts目錄標頭檔案makefile:定義變數,供其他makefile使用。
指令碼程式設計-shell
9 1課堂筆記
課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...
9 7課堂筆記
課堂筆記 執行緒的同步 為什麼需要 執行緒同步 執行緒間共享 和資料可以節省系統開銷,提高程式執行效率,但同時也導致了資料的 訪問衝突 問題,如何實現執行緒間的有機互動 並確保共享資源在某些關鍵時段只能被乙個執行緒訪問,即所謂的 執行緒同步 synchronization 就變得至關重要。臨界資源 ...
2018 3 8課堂筆記
選擇器的優先級別可以如下方式計算 a 行內樣式權重1000,b id選擇器權重100 c 類 偽類和屬性選擇器權重10,d 標籤選擇器和偽元素選擇器權重為1 對於網頁中背景的修改 都是以background開頭的,例如 background position背景的定位 background size...