由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Unix版 - linux下跑得正常Unix下出错
相关主题
[转载] 奇怪的bug,弄得我没脾气![转载] GDB crash
question about UNIX Signal一个关于GDB的问题
数组大小问题请教need help about GDB
alloc memory in UNIXQuestion: GDB debug C++ program in Unix
help for g77Re: Question: GDB debug C++ program in U
如何了解coredump【贴图】这个人的Emacs + GDB 是怎么做出来的? (转载)
any debugging tool?批处理求助
[转载] how to debug multi-threaded program?怎么回事?!
相关话题的讨论汇总
话题: new话题: handler话题: unix话题: linux话题: 数组
进入Unix版参与讨论
1 (共1页)
s*****s
发帖数: 27
1
用GDB调试过
我得程序流程大致如此:
我有个数组,类型是自己定义得,刚开始我要把这个数组
得所有元素用读进来得二进制文件数据初始化
现在问题是,在前N个循环都正常,可是到n+1个数组
初始化时候在
m_pData = new double[size] 时出问题,程序执行这一行
就立即退出了,所以我看不出问题,一般来说我可以判断
m_pdata是否为空,是不是?但是现在都论不到我这一步
判断。
btw,我得数据很大,比较占内存,但是1G的内存应该够的,
因为我的linux服务器上就是这么多,这台SUN服务器内存
不比这个少。
s*****s
发帖数: 27
2
从Linux跑的进程来看,大概需要250M内存

【在 s*****s 的大作中提到】
: 用GDB调试过
: 我得程序流程大致如此:
: 我有个数组,类型是自己定义得,刚开始我要把这个数组
: 得所有元素用读进来得二进制文件数据初始化
: 现在问题是,在前N个循环都正常,可是到n+1个数组
: 初始化时候在
: m_pData = new double[size] 时出问题,程序执行这一行
: 就立即退出了,所以我看不出问题,一般来说我可以判断
: m_pdata是否为空,是不是?但是现在都论不到我这一步
: 判断。

p******g
发帖数: 347
3
write a simple piece of test code, just try to new all the mem u need see if i
t will crash the code.
Another way is the catch the throw from new
try { aData = new double{size}; }
catch (std::bad_alloc&) { cerr<<"Out of Mem"< Yet another way is the use the new's handler, it and its usage are declared in
as
typedef void (*new_handler)();
new_handler set_new_handler(new_handler p) throw();
you will need to use it this way
#include
// function to call if opera

【在 s*****s 的大作中提到】
: 从Linux跑的进程来看,大概需要250M内存
c*r
发帖数: 278
4
run "limit" and see if "datasize" is limited

【在 s*****s 的大作中提到】
: 用GDB调试过
: 我得程序流程大致如此:
: 我有个数组,类型是自己定义得,刚开始我要把这个数组
: 得所有元素用读进来得二进制文件数据初始化
: 现在问题是,在前N个循环都正常,可是到n+1个数组
: 初始化时候在
: m_pData = new double[size] 时出问题,程序执行这一行
: 就立即退出了,所以我看不出问题,一般来说我可以判断
: m_pdata是否为空,是不是?但是现在都论不到我这一步
: 判断。

s*****s
发帖数: 27
5
真够专业,试试看

【在 p******g 的大作中提到】
: write a simple piece of test code, just try to new all the mem u need see if i
: t will crash the code.
: Another way is the catch the throw from new
: try { aData = new double{size}; }
: catch (std::bad_alloc&) { cerr<<"Out of Mem"<: Yet another way is the use the new's handler, it and its usage are declared in
: as
: typedef void (*new_handler)();
: new_handler set_new_handler(new_handler p) throw();
: you will need to use it this way

1 (共1页)
进入Unix版参与讨论
相关主题
怎么回事?!help for g77
Re: Help! Vi 把文件变成了二进制的,怎么恢复?如何了解coredump
[转载] SIGTSTPany debugging tool?
[转载] 哪里能找到ECOFF的详细规范?[转载] how to debug multi-threaded program?
[转载] 奇怪的bug,弄得我没脾气![转载] GDB crash
question about UNIX Signal一个关于GDB的问题
数组大小问题请教need help about GDB
alloc memory in UNIXQuestion: GDB debug C++ program in Unix
相关话题的讨论汇总
话题: new话题: handler话题: unix话题: linux话题: 数组