Friday 15 May 2015

debugging - Absolute value of symbol -


I was trying to understand the system.map file, which every time the Linux kernel collects, I try to understand The values ​​were presented in the system.map file.

After this is a sample information

  000001d5 a kexec_control_code_size 00,400,000 a phys_startup_32 c0400000 t _text c0400000t startup_32 c04000b4t start_cpu0 c04000c4t startup_32_smp c04000e0t default_entry c0400158t enable_paging c04001da If you see the first line, then type of symbol  kexec_control_code_size   is shown as one , I know  a  means that the symbol's value is absolute, but what to decode completely is that it really means i Shm was not. What is the value symbol? Does the full address mean that this mark will be present at this address every time the kernel is loaded into memory? 

Please ask questions, if questions are very basic

You "man nm" Through the symbol type can check. NM tool shows all the symbols in the object file. You can meet people under the Nm. Linux kernel module .ko file and kernel object file can be tested from nm tool. In addition you can check symbols from zImage or uImage or any kernel image and using kernel module using objdump and readelf. Try using the man page for a detailed description. For example, symbols can be detected like offset from some key points. Know the full value of other approaches to calculating the address of symbols (possibly full value related to address space?). External symbols must be complete. Marked mark as complete remains the same address through any link operation.


No comments:

Post a Comment