编译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_b
相关文档:
安装openssh 服务端
sudo apt-get install openssh-server openssh-client
windows 下客户端
puTTY
常用命令:
一.Ls 查看目录命令
一般放在home 目录下
Ls –l / 根目录下的列表
Ls –a / 根目录下所有的文件
Ls –la 组合的选项
Ls –l / ......
1.定义函数指针类型
要根据动态库中药使用的函数,在外面定义同样类型的函数指针类型,供以后使用
typedef unsigned long(*POpenDev)(IN unsigned long int);
2. 定义函数指针
POpenDev OpenDev;
3.动态加载动态库
HANDLE sohandle = NULL;
sohandle = dlopen("libNiKeyDll.so", RTLD_NOW);
......
最近通读了一下软件调试的艺术(The art of debugging with gdb,ddd,eclipse),总体来说是一般入门级的调试用书。我个人感觉对初学gdb的有一定的作用,有愧于题目art。我简单的做个总结,供入门参考。主要讲了gdb的常用命令以及常见bug的调试。
常用命令:
1. 暂停机制
a.断点的使用
& ......
linux修改系统时间
2008-04-03 20:57
两步
(1)date 042612492005
(2)hwclock -w
第一
步的意思是设置时间,设置完了可以用date命令查看对不对...注意是月日时分年
第二步的意思是写入主板的rtc芯片..
=======================================
su -c 'date -s 月/日/年'
su -c 'date -s 时:分:秒'
============== ......