调用`call_pv()`时为什么应用程序崩溃?

时间:2013-07-05 11:37:06

标签: perl crash perl-xs

我们正在使用call_pv调用子例程process_input,这是从处理文本输入最大为1 MB的进程代码调用的。该过程执行以下操作:

  • 它吃来自任何maileater客户端的邮件
  • 在应用程序中创建新票证
  • 并在邮件大小为>时回复。 1 MB

我最近发送了一个大约800 KB的文件,导致进程持续崩溃,直到2 GB并崩溃。这是电话:

Call_pv("process_input",G_EVAL|G_ARRAY);

任何想法都会有所帮助。除call_pv之外还有其他选择吗?

其他详细信息:电子邮件中发送的文字包含重音字符。

1 个答案:

答案 0 :(得分:0)

进程因为内存不足而死亡。 32位进程具有4GB的地址空间,但Windows中的应用程序(以及IIRC,Linux中的3GB)只能使用2GB的地址空间。