当前位置:  技术问答>linux和unix

AIX下调用函数时提示段错误

    来源: 互联网  发布时间:2016-03-15

    本文导语:  CFepFisSettingMsg cmdMsg; memcpy( &cmdMsg.m_Data, pPara, sizeof(SFisCmdItem)); cmdMsg.m_iDataNum = iNum; cmdMsg.m_iDataLen = iNum*sizeof(SFepFisSetting); cmdMsg.m_bEnd = bEnd; cmdMsg.m_iSeq = iSeq; if(pBufData != NULL) { if(cmdMsg.AllocBuffer(iNum)) memcpy(...

CFepFisSettingMsg cmdMsg;

memcpy( &cmdMsg.m_Data, pPara, sizeof(SFisCmdItem));
cmdMsg.m_iDataNum = iNum;
cmdMsg.m_iDataLen = iNum*sizeof(SFepFisSetting);
cmdMsg.m_bEnd = bEnd;
cmdMsg.m_iSeq = iSeq;

if(pBufData != NULL)
{
if(cmdMsg.AllocBuffer(iNum))
memcpy(cmdMsg.m_pDataBuf,pBufData,cmdMsg.m_iDataLen);
}
else
{
cmdMsg.m_pDataBuf = NULL;
cmdMsg.m_iDataNum = 0;
cmdMsg.m_iDataLen = 0;
}
bool bRet = m_pService->SendMessage( cmdMsg, m_targetAddr, iCmd);

当调用SendMessage时,iNum 为80,在AIX下提示段错误,还没执行到SendMessage函数中,只是参数复制的时候就出错了。将iNum从80改为40后,就好了。
class FIS_EXPORT_CLASS CFepFisSettingMsg : public CFisCmdMsg
{
public:
CFepFisSettingMsg ();
~ CFepFisSettingMsg ();

virtual void ReadBinary(CBufferStream &);
virtual void WriteBinary(CBufferStream &);
    virtual bool AllocBuffer(int num);

public:

SFepFisSetting *m_pDataBuf;
};
在程序中根据iNum 数目生成m_pDataBuf。

在windows下运行就没问题。

m_pDataBuf是在堆上分配的啊, 怎么iNum 一多就出现堆栈问题呢?

|
linux和windows上默认堆栈是不同

windows上可以直接设置stack and heap

在linux上可以使用ulimit命令设置,参数是-s

|
ulimit

功能说明:控制shell程序的资源。

语  法:ulimit [-aHS][-c ][-d ][-f ][-m ][-n ][-p ][-s ][-t ][-u ][-v ]

补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。

参  数:
  -a  显示目前资源限制的设定。 
  -c   设定core文件的最大值,单位为区块。 
  -d   程序数据节区的最大值,单位为KB。 
  -f   shell所能建立的最大文件,单位为区块。 
  -H  设定资源的硬性限制,也就是管理员所设下的限制。 
  -m   指定可使用内存的上限,单位为KB。 
  -n   指定同一时间最多可开启的文件数。 
  -p   指定管道缓冲区的大小,单位512字节。 
  -s   指定堆叠的上限,单位为KB。 
  -S  设定资源的弹性限制。 
  -t   指定CPU使用时间的上限,单位为秒。 
  -u   用户最多可开启的程序数目。 
  -v   指定可使用的虚拟内存上限,单位为KB。 


|
不会,帮顶

|
顶一下

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • AIX下开发的C代码,在LINUX下面编译,提示找不到standards.h文件
  • AIX目前最新的编译器都支持C++0x标准里的那些内容?GCC 4.5.0是否能够在AIX上安装?
  • 公告:CSDN AIX论坛有奖话题讨论活动(七)——本期话题:在海量运算方面,和Linux系统相比,AIX系统有优势吗?
  • 哪里可以下载AIX操作系统?
  • 公告:CSDN AIX论坛有奖话题讨论活动(四)——本期话题:从开发周期上来看,和HP-UX、Solaris相比,AIX系统有优势吗?
  • 公告:CSDN AIX论坛有奖话题讨论活动(八)——本期话题:除了数据库应用,还有哪些应用也可以运行于AIX系统之上?(和Linux系统相比较,性能更优)
  • AIX共享内存分配问题
  • 求GCC for AIX5.3
  • aix上编译问题
  • linux -> aix 发展
  • 公告:CSDN AIX论坛有奖话题讨论活动(六)——本期话题:AIX的动态工作负载分区和Hypervisor的逻辑分区相比,有何优劣?
  • 有关 AIX 编程兼容性方面的疑问
  • aix问题求教--愿给200分!!!
  • 关于AIX的进程间通讯的方法
  • window 向aix 的移植问题----在线等待
  • 普通pc机,可否装aix操作系统?
  • 有谁在AIX下装过下载版的websphere
  • IBM AIX可以用其他的unix 或者 lunix代替吗?
  • Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》 集中答疑 40
  • 请问AIX下用什么命令能够获取CPU型号、频率信息,多CPU情况下
  • 在AIX(4.3)系统上如何查看内存情况


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3