【发布时间】: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