7199|1

1170

帖子

0

TA的资源

至上芯片

楼主
 

编译linux内核生成的system.map文件详解 [复制链接]

有时system.map文件可以帮助我们理解内核编译,它记录了所有代码的运行地址。 下面一起看看如何读懂它 system.map内容格式为:线性地址 类型 符号 具体内容如下: 00100000 A phys_startup_32 c0100000 T startup_32 c0100000 A _text 注:表示内核代码第一个字节的地址 c01000c6 t checkCPUtype c0100147 t is486 c010014e t is386 c0100199 t L6 c010019b t check_x87 c01001c2 t setup_idt c01001df t rp_sidt c01001ec t ignore_int c0100220 t rest_init c0100220 T stext c0100220 T _stext c0100252 t do_pre_smp_initcalls c0100257 t run_init_process c0100283 t init c01003a8 t try_name c0100529 T name_to_dev_t c0100790 t calibrate_delay_direct ... c02f95d7 T register_kretprobe c02f96cd T unregister_kretprobe c02f9760 t .text.lock.kprobes c02f97b0 T __kprobes_text_end c02f9abe t iret_exc c02fa1af A _etext 注:内核代码结束的位置,之后为内核初始化的数据 c02fa1b0 A __start___ex_table c02facc0 A __stop___ex_table c02fb000 r __func__.12 c02fb000 A __start_rodata c02fb00c r __func__.13 c02fb020 r __func__.2 c02fb02c r __func__.3 c02fb040 R linux_banner c02fb0bb r __func__.0 c02fb0c7 r __func__.1 c02fb0e0 r __func__.0 c02fb0ec r __func__.1 c02fb100 r border c02fb160 r cplens ... c03e1b08 D ip_statistics c03e1b10 D tcp_statistics c03e1b18 D udp_statistics c03e1b20 D icmp_statistics c03e1b28 D net_statistics c03e1b30 d fn_hash_kmem c03e1b34 d fn_alias_kmem c03e1b38 d xfrm_dst_cache c03e1b3c d secpath_cachep c03e1b40 A _edata 注:内核初始化数据结束,之后为未初始化数据 c03e2000 D init_thread_union c03e4000 A __init_begin c03e4000 t no_halt c03e4000 T _sinittext c03e400d t mca_pentium c03e401d t no_387 c03e4033 t check_fpu ... c043a058 b pfkey_table c043a05c b pfkey_table_lock c043a05c b pfkey_table_users c043a060 b pfkey_socks_nr c043a064 b acqseq.4 c043a068 b acqseq_lock.5 c043a068 A __bss_stop c043a068 A _end 注:内核未初始化数据结束 c043b000 A pg0 ffffe400 A __kernel_vsyscall ffffe410 A SYSENTER_RETURN ffffe420 A __kernel_sigreturn ffffe440 A __kernel_rt_sigreturn 符号类型. 小写字母表示局部; 大写字母表示全局(外部). A The symbol's value is absolute, and will not be changed by further linking. B The symbol is in the uninitialized data section (known as BSS). C The symbol is common. Common symbols are uninitialized data. When linking, multiple common symbols may appear with the same name. If the symbol is defined anywhere, the common symbols are treated as undefined references. For more details on common symbols, see the discussion of -warn-common in Linker options. D The symbol is in the initialized data section. G The symbol is in an initialized data section for small objects. Some object file formats permit more efficient access to small data objects, such as a global int variable as opposed to a large global array. I The symbol is an indirect reference to another symbol. This is a GNU extension to the a.out object file format which is rarely used. N The symbol is a debugging symbol. R The symbol is in a read only data section. S The symbol is in an uninitialized data section for small objects. T The symbol is in the text (code) section. U The symbol is undefined. V The symbol is a weak object. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error. W The symbol is a weak symbol that has not been specifically tagged as a weak object symbol. When a weak defined symbol is linked with a normal defined symbol, the normal defined symbol is used with no error. When a weak undefined symbol is linked and the symbol is not defined, the value of the weak symbol becomes zero with no error. - The symbol is a stabs symbol in an a.out object file. In this case, the next values printed are the stabs other field, the stabs desc field, and the stab type. Stabs symbols are used to hold debugging information. For more information, see Stabs. ? The symbol type is unknown, or object file format specific.

最新回复

问一下,懂这个有什么用。  详情 回复 发表于 2008-3-5 17:12
点赞 关注

回复
举报

399

帖子

0

TA的资源

裸片初长成(初级)

沙发
 

回复:编译linux内核生成的system.map文件详解

问一下,懂这个有什么用。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表