linux應用程式位址布局,王明學learn

2022-07-23 21:57:34 字數 548 閱讀 7246

linux應用程式位址布局

在學習linux應用程式開發時,經常會遇到如下概念:**段、資料段、bss段(block started by symbol,又名:未初始化資料段)、堆(heap)和棧(stack)。而這些部分也是構成linux應用程式的重要組成部分。

一、記憶體布局

2.堆向高記憶體位址生長

3.棧向低記憶體位址生長

二、資料存放

1.**段:**,全域性常量(const)、字串常量

2.資料段:全域性變數(初始化以及未初始化的)、靜態變數(全域性的和區域性的、初始化的以及未初始化的)

3.堆:動態分配的區域

4.棧:區域性變數(初始化以及未初始化的,但不包含靜態變數)、區域性唯讀變數(const)

三、利用readelf –s 程式名   分析bss段

linux中編譯出的可執行檔案字尾為.elf  執行readelf  -s 可執行程式檔名,可以檢視檔案中資料各段資訊。

Linux 1 4 應用程式位址布局

1 記憶體組成 2 記憶體布局 linux所有應用程式都是從0x80480000開始,其中0x80480000是乙個虛擬位址 1 下面來測試一下應用程式的位址分布 include include int global init a 1 全域性的,初始化的變數 資料段 int global unini...

5 Linux應用程式位址布局

5.linux應用程式位址布局 程式構成 在學習linux應用程式開發時,經常會遇到如下概念 段 資料段 bss段 block started by symbol,又名 未初始化資料段 堆 heap 和棧 stack 而這些部分也是構成linux應用程式的重要組成部分。記憶體布局 當linux應用程...

第4課 Linux應用程式位址布局

1.應用程式都是由 段,資料段,bss段以及堆空間,棧空間組成。2.布局方式 1 段在最低位址處,一般都是從0x8048000開始,這是虛擬位址,每乙個應用程式都是這樣的 2 資料段緊貼著 段 3 在往上是bss段其實也是一種資料段 4 在往上是堆空間,堆空間是往上增長的 5 定不一般是棧空間,棧空...