首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >64位可执行文件中的MAXDATA参数

64位可执行文件中的MAXDATA参数
EN

Stack Overflow用户
提问于 2016-01-19 20:32:58
回答 1查看 1.6K关注 0票数 0

我已经明白了设置-bmaxdata或LDR_CNTRL=MAXDATA.在AIX上,64位应用程序只需要设置进程的堆大小限制。换句话说,没有必要提高32位可执行文件的限制。

在特定的AIX7.1系统上,其中OBJECT_MODE=64 dump -ov my-executable显示最大数据为0x00000000,而LDR_CNTRL未设置,我必须设置LDR_CNTRL=MAXDATA.对于我们在旧的32位构建中设置的2GB-ish号,我们甚至可以初始化我的64位应用程序(initgroup() fails,pthread_create fails等)。

是否有必要在64位进程中设置MAXDATA以避免在堆大小上设置一个古老的256 in的限制?

代码语言:javascript
复制
# /usr/bin/ulimit -a
time(seconds)        unlimited
file(blocks)         2097151
data(kbytes)         131072
stack(kbytes)        32768
memory(kbytes)       32768
coredump(blocks)     2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user)  unlimited

# OBJECT_MODE=64 dump -ov bin/httpd

bin/httpd:

                        ***Object Module Header***
# Sections      Symbol Ptr      # Symbols       Opt Hdr Len     Flags
         4      0x000c78b0           8683               120     0x1002
Flags=( EXEC DYNLOAD DEP_SYSTEM )
Timestamp = "Oct 05 19:03:19 2015"
Magic = 0x1f7  (64-bit XCOFF)

                        ***Optional Header***
Tsize       Dsize       Bsize       Tstart      Dstart
0x0007c66a  0x00009d06  0x00003c08  0x1000001f8  0x110000862

SNloader    SNentry     SNtext      SNtoc       SNdata
0x0004      0x0002      0x0001      0x0002      0x0002    

TXTalign    DATAalign   TOC         vstamp      entry
0x0007      0x0003      0x1100091b8  0x0001      0x110003a70

maxSTACK    maxDATA     SNbss       magic       modtype
0x00000000  0x00000000  0x0003      0x010b        1L
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 21:55:28

您的示例中的限制因素是ulimit 'data‘值。如果设置为“无限”,您将观察到预期的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34886419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档