freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux開發(fā)基礎(chǔ)相關(guān)知識簡介(編輯修改稿)

2025-03-09 14:13 本頁面
 

【文章內(nèi)容簡介】 下定義 CFLAGS 變量: CFLAGS = g 運(yùn)行 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 獲取幫助信息 ? 啟動 gdb后,可以在命令行上指定很多的選項(xiàng)。輸入: help 可以獲得 gdb的幫助信息。 ? 如果想要了解某個(gè)具體命令(比如 break)的幫助信息,在 gdb提示符下輸入下面的命令: break 屏幕上會顯示關(guān)于 break的幫助信息。從返回的信息可知, break是用于設(shè)置斷點(diǎn)的命令。 ? 另一個(gè)獲得 gdb幫助的方法是瀏覽 gdb的手冊頁。在 Linux Shell提示符輸入: man gdb 可以看到 man的手冊頁 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 gdb命令的分類 ? 在 gdb 提示符處鍵入 help,將列出命令的分類,主要的分類有: ? aliases:命令別名 ? breakpoints:斷點(diǎn)定義; ? data:數(shù)據(jù)查看; ? files:指定并查看文件; ? internals:維護(hù)命令; ? running:程序執(zhí)行; ? stack:調(diào)用棧查看; ? statu:狀態(tài)查看; ? tracepoints:跟蹤程序執(zhí)行。 ? 后跟命令的分類名,可獲得該類命令的詳細(xì)清單 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 基本 gdb命令( 1/2) ? file命令:裝入想要調(diào)試的可執(zhí)行文件。 ? cd命令:改變工作目錄。 ? pwd命令:返回當(dāng)前工作目錄。 ? run命令:執(zhí)行當(dāng)前被調(diào)試的程序。 ? kill命令:停止正在調(diào)試的應(yīng)用程序。 ? list命令:列出正在調(diào)試的應(yīng)用程序的源代碼。 ? break命令:設(shè)置斷點(diǎn)。 ? watch命令:設(shè)置監(jiān)視點(diǎn),監(jiān)視表達(dá)式的變化。 ? awatch命令:設(shè)置讀寫監(jiān)視點(diǎn)。當(dāng)要監(jiān)視的表達(dá)式被讀或?qū)憰r(shí)將應(yīng)用程序掛起。它的語法與 watch命令相同。 ? rwatch命令:設(shè)置讀監(jiān)視點(diǎn),當(dāng)監(jiān)視表達(dá)式被讀時(shí)將程序掛起,等侍調(diào)試。此命令的語法與 watch相同。 ? next命令:執(zhí)行下一條源代碼,但是不進(jìn)入函數(shù)內(nèi)部。也就是說,將一條函數(shù)調(diào)用作為一條語句執(zhí)行。執(zhí)行這個(gè)命令的前提是已經(jīng) run,開始了代碼的執(zhí)行。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 基本 gdb命令( 2/2) ? step命令:執(zhí)行下一條源代碼,進(jìn)入函數(shù)內(nèi)部。如果調(diào)用了某個(gè)函數(shù),會跳到函數(shù)所在的代碼中等候一步步執(zhí)行。執(zhí)行這個(gè)命令的前提是已經(jīng)用run開始執(zhí)行代碼。 ? display命令:在應(yīng)用程序每次停止運(yùn)行時(shí)顯示表達(dá)式的值。 ? info break命令:顯示當(dāng)前斷點(diǎn)列表,包括每個(gè)斷點(diǎn)到達(dá)的次數(shù) ? 16) info files命令:顯示調(diào)試文件的信息。 ? 17) info func命令:顯示所有的函數(shù)名。 ? 18) info local命令:顯示當(dāng)前函數(shù)的所有局部變量的信息。 ? 19) info prog命令:顯示調(diào)試程序的執(zhí)行狀態(tài)。 ? 20) print命令;顯示表達(dá)式的值。 ? 21) delete命令:刪除斷點(diǎn)。指定一個(gè)斷點(diǎn)號碼,則刪除指定斷點(diǎn)。不指定參數(shù)則刪除所有的斷點(diǎn)。 ? 22) Shell命令:執(zhí)行 Linux Shell命令。 ? 23) make命令:不退出 gdb而重新編譯生成可執(zhí)行文件。 ? 24) Quit命令:退出 gdb。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 gdb 使用實(shí)例( 1/2) ? /* 一個(gè)有錯誤的 C 源程序 */ include include static char buff [256]。 static char* string。 int main () { printf (Please input a string: )。 gets (string)。 printf (\nYour string is: %s\n, string)。 } ? 上面這個(gè)程序非常簡單,其目的是接受用戶的輸入,然后將用戶的輸入打印出來。該程序使用了 一個(gè)未經(jīng)過初始化的字符串地址 string,因此,編譯并運(yùn)行之后,將出現(xiàn) Segment Fault 錯誤: $ gcc o test g $ ./test Please input a string: asfd Segmentation fault (core dumped) 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 gdb 使用實(shí)例( 2/2) ? 為了查找該程序中出現(xiàn)的問題,我們利用 gdb,并按如下的步驟進(jìn)行: ? 1.運(yùn)行 gdb bugging 命令,裝入 bugging 可執(zhí)行文件; ? 2.執(zhí)行裝入的 bugging 命令; ? 3.使用 where 命令查看程序出錯的地方; ? 4.利用 list 命令查看調(diào)用 gets 函數(shù)附近的代碼; ? 5.唯一能夠?qū)е? gets 函數(shù)出錯的因素就是變量 string。用 print 命令查看 string 的值; ? 6.在 gdb 中,我們可以直接修改變量的值,只要將 string 取一個(gè)合法的指針值就可以了,為 此,我們在第 11 行處設(shè)置斷點(diǎn); ? 7.程序重新運(yùn)行到第 11 行處停止,這時(shí),我們可以用 set variable 命令修改 string 的取值; ? 8.然后繼續(xù)運(yùn)行,將看到正確的程序運(yùn)行結(jié)果。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 GNU make和 makefile ? GNU make概述 ? Makefile 的基本結(jié)構(gòu) ? Makefile中的變量 ? GNU make 的主要預(yù)定義變量 ? Makefile的隱含規(guī)則 ? make命令行選項(xiàng) ? 使用 automake和 autoconf產(chǎn)生 Makefile 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 GNU make概述 ? 在大型的開發(fā)項(xiàng)目中,人們通常利用 make 工具來自動完成編譯工作。這些工作包括: ? 如果僅修改了某幾個(gè)源文件,則只重新編譯這幾個(gè)源文件; ? 如果某個(gè)頭文件被修改了,則重新編譯所有包含該頭文件的源文件。 ? 利用這種自動編譯可大大簡化開發(fā)工作,避免不必要的重新編譯。 ? 實(shí)際上, make 工具通過一個(gè)稱為 makefile 的文件來完成并自動維護(hù)編譯工作。 makefile 需要按照某種語法進(jìn)行編寫,其中說明了如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并定義了源文件之間的依賴關(guān)系。 當(dāng)修改了其中某個(gè)源文件時(shí),如果其他源文件依賴于該文件,則也要重新編譯所有依賴該文件的源文件。 ? 默認(rèn)情況下, GNU make 工具在當(dāng)前工作目錄按如下順序搜索 makefile: ? GNUmakefile ? makefile ? Makefile 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 makefile舉例 ? 在 UNIX中,習(xí)慣使用 makefile 作為 makfile 文件。 ? Linux程序員使用第三種文件名 Makefile。因?yàn)榈谝粋€(gè)字母是大寫,通常被列在一個(gè)目錄的文件列表的最前面。 ? 如果要使用其他文件作為 makefile,則可利用類 似下面的 make 命令選項(xiàng)指定 makefile 文件: $ make f ? 例 1:一個(gè)簡單的 makefile prog: gcc o prog : gcc c I. o : gcc c 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 Makefile 的基本結(jié)構(gòu)( 1/2) ? Makefile是一個(gè)文本形式的數(shù)據(jù)庫文件,其中包含一些規(guī)則來告訴 make處理哪些文件以及如何處理這些文件。 ? 規(guī)則主要是描述哪些文件(稱為 target目標(biāo)文件,不要和編譯時(shí)產(chǎn)生的目標(biāo)文件相混淆)是從哪些別的文件(稱為 dependency依賴文件)中產(chǎn)生的,以及用什么命令( mand)來執(zhí)行這個(gè)過程。 ? 依靠這些信息, make會對磁盤上的文件進(jìn)行檢查,如果目標(biāo)文件的生成或被改動時(shí)的時(shí)間(稱為該文件時(shí)間戳)至少比它的一個(gè)依賴文件還舊的話, make就執(zhí)行相應(yīng)的命令,以更新目標(biāo)文件。 ? 目標(biāo)文件不一定是最后的可執(zhí)行文件,可以是任何一個(gè)中間文件并可以作為其他目標(biāo)文件的依賴文件。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 Makefile 的基本結(jié)構(gòu)( 2/2) ? Makefile規(guī)則的一般形式如下: target: dependency dependency (tab)mand ? 一個(gè) Makefile文件主要含有一系列的規(guī)則,每條規(guī)則包含以下內(nèi)容。 ? 一個(gè)目標(biāo)( target),即 make最終需要創(chuàng)建的文件,如可執(zhí)行文件和目標(biāo)文件;目標(biāo)也可以是要執(zhí)行的動作,如“ clean”。 ? 一個(gè)或多個(gè)依賴文件( dependency)列表,通常是編譯目標(biāo)文件所需要的其他文件。 ? 一系列命今 (mand),是 make執(zhí)行的動作,通常是把指定的相關(guān)文件編譯成目標(biāo)文件的編譯命令,每個(gè)命令占一行,且每個(gè)命令行的起始字符必須為 TAB字符。 ? 除非特別指定,否則 make的工作目錄就是當(dāng)前目錄。 target是需要創(chuàng)建的二進(jìn)制文件或目標(biāo)文件, dependency是在創(chuàng)建 target時(shí)需要用到的一個(gè)或多個(gè)文件的列表,命令序列是創(chuàng)建 target文件所需要執(zhí)行的步驟,比如編譯命令。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 Makefile實(shí)例( 1/3) 以 開頭的為注釋行 test: gcc –o test : gcc –c –o : gcc –c –o clean: rm –f *.o ? 上面的 Makefile文件中共定義了四個(gè)目標(biāo): test、 、 clean。 ? 目標(biāo)從每行的最左邊開始寫,后面跟一個(gè)冒號(:),如果有與這個(gè)目標(biāo)有依賴性的其他目標(biāo)或文件,把它們列在冒號后面,并以空格隔開。然后另起一行開始寫實(shí)現(xiàn)這個(gè)目標(biāo)的一組命令。 ? 在 Makefile中,可使用續(xù)行號( \)將一個(gè)單獨(dú)的命令行延續(xù)成幾行。但要注意在續(xù)行號( \)后面不能跟任何字符(包括空格和鍵) 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 Makefile實(shí)例( 2/3) ? 一般情況下,調(diào)用 make命令可輸入: ? make target ? target是 Makefile文件中定義的目標(biāo)之一,如果省略 target, make就將生成 Makefile文件中定義的第一個(gè)目標(biāo)。 ? 對于上面 Makefile的例子,單獨(dú)的一個(gè)“ make”命令等價(jià)于: ? make test ? 因?yàn)?test是 Makefile文件中定義的第一個(gè)目標(biāo), make首先將其讀入,然后從第一行開始執(zhí)行,把第一個(gè)目標(biāo) test作為它的最終目標(biāo),所有后面的目標(biāo)的更新都會影響到 test的更新。 ? 第一條規(guī)則說明只要文件 test的時(shí)間戳比文件 何一個(gè)舊,下一行的編譯命令將會被執(zhí)行。 博創(chuàng)科技 嵌入互動 169。 2023 博創(chuàng)科技 Makefile實(shí)例( 3/3) ? 但是,在檢查文件 , make會在下面的行中尋找以 ,在第三行中找到了關(guān)于 則,該文件的依賴文件是 、 。同樣, make會在后面的規(guī)則行中繼續(xù)查找這些依賴文件的規(guī)則,如果找不到,則開始檢查這些依賴文件的時(shí)間戳,如果這些文件中任何一個(gè)的時(shí)間戳比 ,make將執(zhí)行“ gcc –c –o ”命令,更新 。 ? 以同樣的方法,接下來對文件 ,依賴文件是 。當(dāng) make執(zhí)行完所有這些套嵌的規(guī)則后, make將處理最頂層的test規(guī)則。如果關(guān)于 ,至少其中一個(gè) .o目標(biāo)文件就會比 test新,那么就要執(zhí)行 test規(guī)則中的命令,因此 make去執(zhí)行 gcc命令將 test。 ? 在上面 Makefile的例子中,還定義了一個(gè)目標(biāo) clean,它是 Makefile中常用的一種專用目標(biāo),即刪除所有的目標(biāo)模塊 博創(chuàng)科技
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1