急问:用gcc编译源码后,输出的.pdr段里放的是什么东西?
我将自己的源代码用makefile文件编译连接时
当连接的时候,报
Not enough room for program header
的错误,不知道是什么意思
我的代码编译时使用了长跳转编译,将代码分别方在两块分离的地址上
如果把代码放在连续的地址上,编译可以通过
用objdump命令看了一下,发现有一个段叫:
.pdr
看了ld文档后,发现.pdr段和program header有关系,
不知道该怎么处理这个段?
不再报
Not enough room for program header
的错误。
多谢各位大虾指点!
当连接的时候,报
Not enough room for program header
的错误,不知道是什么意思
我的代码编译时使用了长跳转编译,将代码分别方在两块分离的地址上
如果把代码放在连续的地址上,编译可以通过
用objdump命令看了一下,发现有一个段叫:
.pdr
看了ld文档后,发现.pdr段和program header有关系,
不知道该怎么处理这个段?
不再报
Not enough room for program header
的错误。
多谢各位大虾指点!
作者: elfcandy 发布时间: 2007-08-30
贴makefile.
作者: dai_weitao 发布时间: 2007-08-30
就是使用长跳转选项编译后,将代码放在两块地址距离较远的空间上。
进行连接。
现在已经确定,是代码的问题,但是不知道怎样编写代码,才会在cygwin的GNU编译器下采用上述方法编译代码时出现错误。
有没有两个不同数据类型的变量,不做强制转换,直接赋值造成?
谢谢。
另外,我查看了LD手册, program header 与phdr有关,好像有一个段叫.pdr,是用来存放program header。但是手册上也讲了,
program header可以由系统默认设置。
是不是要改段.pdr的设置???
进行连接。
现在已经确定,是代码的问题,但是不知道怎样编写代码,才会在cygwin的GNU编译器下采用上述方法编译代码时出现错误。
有没有两个不同数据类型的变量,不做强制转换,直接赋值造成?
谢谢。
另外,我查看了LD手册, program header 与phdr有关,好像有一个段叫.pdr,是用来存放program header。但是手册上也讲了,
program header可以由系统默认设置。
是不是要改段.pdr的设置???
作者: elfcandy 发布时间: 2007-09-03
to:dai_weitao
我两个帖子是一个问题。
多谢指点了,呵呵。
我两个帖子是一个问题。
多谢指点了,呵呵。
作者: elfcandy 发布时间: 2007-09-03
我用readelf没有在x86的elf文件中找到pdr段,但是在linux kernel for mips上有这个段,
configure.in中把MIPS_STABS_ELF去掉就可以解决。
configure.in中把MIPS_STABS_ELF去掉就可以解决。
作者: hifrog 发布时间: 2007-09-03
请问configure.in是一个文件吗?
我现在在连接选项中增加-N后,可以连接通过。能给出-N连接选项一个比较好理解的解释吗?
我看过LD的说明文档,上面说加上-N后,会取消数据段的页对齐,数据段页对齐是什么意思?
谢谢
我现在在连接选项中增加-N后,可以连接通过。能给出-N连接选项一个比较好理解的解释吗?
我看过LD的说明文档,上面说加上-N后,会取消数据段的页对齐,数据段页对齐是什么意思?
谢谢
作者: elfcandy 发布时间: 2007-09-04
.pdr 是procedure的缩写,.pdr存在于可重定位文件中,一般好像又来存放你当前这个可重定位文件包含的函数的相关数据。现在gcc编译出来的i386体系结构的可重定位文件里面好像没有.pdr这个section。我只知道在gcc-mips的编译出来的mips体系结构可重定位文件里面有这个section,这个sectione好象是从mips的ecoff文件格式中保留下来的,貌似是debug用的。elf标准里面这个.pdr不是系统保留的sectoin。
作者: ddddawzy 发布时间: 2011-05-16
刚上网去搜了一下 .pdr 之存在于mips体系结构的elf文件里面。以前mips使用ecoff的时候,有一个section叫做.mdebug用来存放debug信息的。后来,mips使用elf文件格式的时候,.pdr就用来代替.mdebug的功能了。假如说你的这个可重定位文件中包含三个子程序,那么.pdr包含三个相应的数据项,每个数据项占32个字节。
作者: ddddawzy 发布时间: 2011-05-16