gpt4 book ai didi

java - 嵌入式 Java 应用程序崩溃,没有异常,也没有明显的原因

转载 作者:行者123 更新时间:2023-11-29 09:14:50 26 4
gpt4 key购买 nike

我有一个在嵌入式 Linux (BusyBox v1.12.4) 上运行的 Java 应用程序。我使用的是 CDC 1.1,VM (cvm) 的版本是 CDC HI phoneme_advanced-Core-1.1.2-b111。

该应用程序的主要目的是收集一些数据并通过 GPRS 发送(使用 Apache commons 库的 FTPClient)

应用程序运行良好,最近我添加了在发送文件之前压缩文件的功能。以下是压缩文件的代码:

public static boolean compressFile(String file, String fileCompressed)
{
boolean result = false;

try
{
Process process = Runtime.getRuntime().exec("tar -czvf " + fileCompressed + " " + file);
System.err.println("Compression in progress");
int returnValue = process.waitFor();
System.err.println("Finished compression");
BufferedReader stderror = new BufferedReader(new InputStreamReader(process.getErrorStream()));

String s;

s = stderror.readLine();
if (s == null)
{
result = true;
} else
{
result = false;
System.err.println(s);
}
} catch (IOException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);

} catch (InterruptedException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);
}

return result;
}

添加此功能后,应用程序开始崩溃!日志不包含任何内存错误或异常,并且它运行的系统缺少正确的配置,因此系统日志也没有显示任何内容(设备制造商告诉我它将在即将推出的版本中提供)。我什至无法在 Debug模式下启动虚拟机!

我必须补充一点,应用程序在压缩过程中不会崩溃,它只是在执行过程中随机崩溃。问题是它仅在启用压缩时崩溃!

有没有人见过这个?有人知道如何调试/解决这个问题吗?

最佳答案

我首先怀疑的是内存不足的情况,这是由 gzip 压缩引擎的执行引起的。尝试在 shell 中调用 dmesg 以查看是否 kernel OOM killer牺牲任何进程。

一些其他的尝试:

  • 删除 tarv 标志:您似乎不需要额外的输出,它可能会导致某种 future 的问题,取决于您的具体环境。

  • 使用不带 z 选项的 tar:如果崩溃在禁用压缩后消失,则可能是内存问题。

  • 尝试 cat,这是您可以启动的最简单的外部进程之一,而不是 tar,看看会发生什么。

  • 对您的硬件进行压力测试:使用压缩可能只会暴露通常不可见的潜在过热或数据损坏问题。

关于java - 嵌入式 Java 应用程序崩溃,没有异常,也没有明显的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10144237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com