国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

基于linux程序中段的學習總結詳解

2024-09-05 23:02:01
字體:
來源:轉載
供稿:網友
linux程序的段陸陸續續接觸過一些,今天適當的總結一下,時間倉促,總結的比較零散。
linux 段:
text:已編譯程序的機器代碼。
.rodata:只讀數據。printf中的格式串,或者開關語句的跳轉表。
data:已初始化的全局變量。
bss:未初始化的全局變量。
symtab:符號表。
注意:
1、如果定義一個全局變量,int i = 0;它被初始化為0,但是,它卻不是放在data段中的,而是放在bss段中的。因為編譯器可能會做一些優化,如果初始化為0,則它會將它等同于未初始化的變量。這樣的可能要求他會將所有未初始化的全局變量(bss段)初始化為0。——但是這個可能會和編譯器有關系。
2、對于static全局變量,它在符號表中有一個屬性表示他是local的,不是global。local的符號式不允許被其他的文件引用的。
3、static定義的局部變量,編譯器會把它作為static全局變量來處理。它在符號表中是出現的(局部變量是不出現的)。唯一不同的是,它會把它在符號表中的名字改掉,一般會增加一個后綴:“.1788”。用這種方法來防止和其他的全局變量重名。而且也可以防止對它的調用。
4、段是有對齊的。如果定義一個char字符,會發現它有時會增加四個字節,之后定義,段大小便不再增加。
5、查看程序段的工具包括:readelf,objdump(加上-t可以查看變量屬于哪個段),size(可以查看各個段的大小。)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临潭县| 商洛市| 堆龙德庆县| 大竹县| 扶绥县| 赤峰市| 白山市| 云南省| 上高县| 甘德县| 黔南| 贵定县| 永清县| 安庆市| 那坡县| 五寨县| 光泽县| 高清| 称多县| 神木县| 濉溪县| 邻水| 隆子县| 普洱| 道真| 哈尔滨市| 北海市| 理塘县| 微博| 聂拉木县| 玛曲县| 义乌市| 抚顺市| 方正县| 庆阳市| 瑞安市| 玉林市| 永新县| 上虞市| 广平县| 南郑县|