嵌入式學習四 偵錯程式和工程管理器

2021-10-04 08:13:22 字數 1179 閱讀 5197

所謂的偵錯程式即指gdb偵錯程式,gdb是gnu計畫的工具,在後面的學習中將還會學習到核心的除錯工具kgdb。眾所周知,程式的錯誤一般分為兩大類: 第一就是語法錯誤,也叫編譯時錯誤,第二就是邏輯錯誤,也就是指在執行時會發生錯誤,可能只演算法問題,也可能指記憶體問題。那麼gdb的功能就是:1.執行程式,2.設定斷點,3.檢視變數值。gdb的使用方法就在原來編譯基礎上加  「-g」即可,即:gcc -g hello.c;

gdb常用的命令如下:

-tui:

layout asm:這個命令是指讓介面顯示**對應的組合語言**

layout src:這個命令是指讓介面顯示**的原始碼,即我們輸入時的**。

layout split:這個命令是指讓彙編與源**都同時顯示,即分屏顯示,這個方式有助於對組合語言的學習。

finish

continue

break + 行號(斷點執行命令)

break +函式名;

break +行號 if條件;

info break : 檢視斷點資訊;

delete + 斷點編號:刪除斷點;

這裡僅僅羅列了部分**,其他的**需要在課外的實踐和學習中了解。

在嵌入式學習中,特此通常還會引入工程管理器內容,這是乙個比較核心的內容。所謂工程管理器(make)指的是:編譯多個檔案組成的軟體**結構。那麼這些檔案可能型別不同,也可能存放在不同的目錄, 還有的可能會涉及到一些資源檔案的使用。那麼在之前的學習中呢,我們都是對單個檔案進行編譯和除錯執行,那麼通過引入工程管理器,在以後的學習中將進行多個.c檔案的同時編譯。工程管理器是能夠進行自動編譯的,即開發者輸入一條指令,會自動執行。當然,首先需要建立乙個makefile檔案,然後工程管理器就會根據makefile檔案的內容去執行。其實工程管理器make就是通過makefile來進行編譯的,makefile是指令碼檔案,其語法有三要素:目標、依賴、命令。具體語法格式為:

目標:依賴

按下tab,(在鍵入)命令

三者的關係為:執行這個命令,依賴於這個檔案,最終會生產這個目標。

make+ 目標名:從該目標開始自上向下執行;

makefile的第四個語法為:偽目標

偽目標是指只執行命令。不生成對應的檔案。

偽目標的定義為:.ohony: 加偽目標名(可以有多個偽目標)。

偽目標的使用可以減少很多不必要的步驟。

嵌入式偵錯程式 GDB

使用gcc除錯c程式時,只能依靠gcc發出的警號或錯誤資訊來進行,所以除錯的效率非常低。為此,gnu開發了gdb偵錯程式。gdb的除錯功能非常強大,甚至可以和visual c 等開發工具箱媲美。但gdb的缺點是沒有圖形除錯介面。儘管如此,對於從事嵌入式linux應用開發的人員還是有必要知道gdb的使...

嵌入式偵錯程式GDB

gdb的除錯功能非常強大,不過,gdb的缺點是沒有圖形除錯介面。通過執行命令 gcc g 檔名 o 檔名 對相應檔案進行編譯,引數g是把除錯資訊加入生成的可執行檔案中。在除錯過程中,可以看到gdb先顯示版本 資訊和庫的相關資訊,等待使用者輸入除錯指令。常用命令 1 檢視原始檔,通過命令l檢視 行數 ...

Linux工程管理器和GDB偵錯程式

在實際的開發過程中,僅僅通過使用 gcc 命令對程式進行編譯是非常低效的。原因主要有以下兩點。1 程式往往是由多個原始檔組成的,原始檔的個數越多,那麼 gcc 的命令列就會越長。此外,各種編譯規則也會加 大 gcc 命令列的複雜度。所以在開發除錯程式的過程中,通過輸入gcc 命令列來編譯程式是很麻煩...