【问题标题】:Fortran in Eclipse: LARGE program will run, but throws java.lang.NullPointerException on debugEclipse 中的 Fortran:大型程序将运行,但在调试时抛出 java.lang.NullPointerException
【发布时间】:2013-11-20 13:37:36
【问题描述】:

我已经开始编写数百万行 FORTRAN 大小的代码(DALTON 量子化学代码)。我想通过 Eclipse 调试它,所以一直在努力在 IDE 中进行设置。

一切运行良好,代码似乎已正确导入,Eclipse 将通过 Cmake 为其生成的 makefile 构建它(使用调试设置)。该程序还将在 Eclipse 中运行良好,将预期结果打印到控制台。但是,当我尝试调试它时,我遇到了 java.lang.NullPointerException 错误,我不知道如何解决。

在项目浏览器中可以看到一些不正确的线索。 Eclipse 似乎处理“dalton.exe”可执行文件的方式与处理通过制作(相同的编译器,gfortran)生成的可执行文件的方式不同,我制作了一个简单的 helloworld 程序来测试 Eclipse 是否按预期调试 Fortran 文件。它似乎将可执行文件视为文本文件。

我无法以新用户的身份直接发布图片,因此我必须提供托管版本的链接。 (我会闲逛并回答我发现可以改变这一点的任何问题:))

非常感谢任何帮助。

屏幕截图:http://i.imgur.com/efmpV0l.png

编辑:

我查看了工作区的 .metadata/.log,但恐怕我不会犯太多错误。它记录以下内容:

!SESSION 2013-11-20 13:46:52.774 -----------------------------------------------
eclipse.buildId=4.3.0.M20130911-1000
java.version=1.7.0_45
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.parallel.product
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.parallel.product

!ENTRY org.eclipse.core.net 1 0 2013-11-20 13:47:30.190
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences

!ENTRY org.eclipse.debug.ui 4 0 2013-11-20 13:48:54.496
!MESSAGE Tab group extension: org.eclipse.cdt.launch.applicationProfileLaunchTabGroup for type org.eclipse.cdt.launch.applicationLaunchType for the [profile] mode has been replaced by extension: org.eclipse.cdt.launch.applicationProfileLaunchTabGroup

!ENTRY org.eclipse.core.jobs 4 2 2013-11-20 13:49:02.238
!MESSAGE An internal error occurred during: "Launching DALTON-Debug_build Configuration".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1889)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1910)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1910)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.setSourceLookupPath(CDebugTarget.java:1863)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initializeSourceLookupPath(CDebugTarget.java:385)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initialize(CDebugTarget.java:286)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.<init>(CDebugTarget.java:279)
    at org.eclipse.cdt.debug.core.CDIDebugModel$1.run(CDIDebugModel.java:127)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2327)
    at org.eclipse.cdt.debug.core.CDIDebugModel.newDebugTarget(CDIDebugModel.java:132)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchLocalDebugSession(LocalCDILaunchDelegate.java:162)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchDebugger(LocalCDILaunchDelegate.java:113)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launch(LocalCDILaunchDelegate.java:74)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

EDIT2:

也许有些进展:

我现在正在使用 sudo 启动 eclipse。我切换到 Debug 窗口,然后切换到控制台中的 Executables 选项卡。我在表中右键单击并将 dalton.x 作为可执行文件导入。需要注意的是,源代码找到成功,可执行文件导入正常。

使用它运行调试构建会出现一个新错误: 未能设置程序参数、环境或工作目录。 无法设置工作目录:“/Users/james/QC_Codes/Dalton/build”:没有这样的文件或目录。 无法设置工作目录:“/Users/james/QC_Codes/Dalton/build”:没有这样的文件或目录。 无法设置工作目录:“/Users/james/QC_Codes/Dalton/build”:没有这样的文件或目录。

我已经仔细检查过了。这些目录存在并且应该可以访问。

再次感谢任何建议。

我继续实验......

【问题讨论】:

  • 尝试查看工作区 .metadata 目录中的 .log 文件以获取有关内部错误的更多详细信息(或查看错误日志视图)。
  • 当然,我已经看过并阅读过,但无法充分利用它,并在编辑中发布了上述问题中的日志数据。

标签: eclipse debugging nullpointerexception fortran photran


【解决方案1】:

该错误看起来像几个 Eclipse 错误报告,例如 https://bugs.eclipse.org/bugs/show_bug.cgi?id=335180https://bugs.eclipse.org/bugs/show_bug.cgi?id=288106 它们似乎与缺少资源或缺少链接资源有关。

【讨论】:

  • 非常如此,尤其是第二个。但是,我对如何避免虚拟文件夹感到困惑。我已经按照this thread 中的建议设置了一个 cmake 标志来避免它们,尽管这没有帮助。 (编辑格式。
猜你喜欢
  • 2015-10-06
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多