我写了一个非常基本的Hello World
程序来了解部分。使用objdump
后,我得到了所有部分。我正在使用ubuntu 12.04
。在c程序中拆卸部分
在输出我发现它类似的:
部的
拆卸的.init
部.PLT
拆卸部分的拆卸的.text
__do_global_dtors_aux
部分调用.fini
我想知道的那些部分是拆卸?他们存储什么数据?特别是.plt
和.fini
。关于.init
和.text
我可以猜到,但其他人呢?
我写了一个非常基本的Hello World
程序来了解部分。使用objdump
后,我得到了所有部分。我正在使用ubuntu 12.04
。在c程序中拆卸部分
在输出我发现它类似的:
部的
拆卸的.init
部.PLT
拆卸部分的拆卸的.text
__do_global_dtors_aux
部分调用.fini
我想知道的那些部分是拆卸?他们存储什么数据?特别是.plt
和.fini
。关于.init
和.text
我可以猜到,但其他人呢?
你应该谷歌它:here is the first result。了解更多关于ELF格式的信息是一个很好的开始。
约.init
和.fini
,it's here。
下一节我想提的是.plt节。这包含我们在共享库中调用函数时使用的跳转表。
调用.fini
本节认为有助于进程终止代码可执行指令。也就是说,当程序正常退出时,系统会安排执行本节中的代码。
我知道你们是怎么编译该文件 –
第一'的gcc -o objectfile programname.c' 然后'objdump的objectfile'。 – someone