Redhawk因Java错误而崩溃 - 被信号6,SIGABRT杀死

时间:2014-11-18 12:55:26

标签: java eclipse centos centos6 redhawksdr

Centos 6.6

Redhawk 1.10

我可以在Redhawk中执行一系列操作(编程USRP的IP),这会导致程序崩溃并出现以下错误:

资料来源:java-1.7.0-openjdk

问题:进程/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64/jre/bin/java被信号6(SIGABRT)杀死

关于如何防止这种情况的任何想法?

另外,我对Redhawk和Linux一般都很陌生,所以请ELI5。

2 个答案:

答案 0 :(得分:2)

在某个方面比我更聪明:

  

这是一个刚刚推出CentOS6.6版本的问题   因为它使用的是比CentOS6.5更新的gtk2版本。 Eclipse检测到   这并且错误地认为它可以使用cairo图形API   是否在预期版本中不可用或不可用。实际上   v1.10和v1.9系列使用的Eclipse版本中的错误   REDHAWK IDE。关于这个问题的信息可以在这次日食中找到   论坛。 Eclipse已经将问题解决了它的最新代码   基础。

     

1.10和1.9用户最简单的解决方法是应用提到的修复程序   在论坛帖子中。导航到包含您的目录   eclipse可执行文件(REDHAWK IDE可执行文件)应该有一个   配置文件名为" eclipse.ini"。添加以下参数   到声明的选项列表:

     

-Dorg.eclipse.swt.internal.gtk.cairoGraphics =假

     

这将禁用未使用的cairo图形   首先。

答案 1 :(得分:1)

我发现发生此错误是因为我在想要生成两个单独的JVM实例的进程上进行远程调试。一个执行测试运行器,一个执行实际测试。 如果您使用以下命令运行程序:

export _JAVA_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7002"

实例都尝试使用端口7002并显示信号中止,因为7002正在用于第二个实例。

相反,您可以使用:

export _JAVA_OPTIONS="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=7002"

通过将suspend设置为yes,可以防止实例同时运行。虽然您必须记住连接远程调试器两次以获取要执行的单独实例。