Ошибка отладки Eclipse CDT в Ubuntu 11.10, выбрасывая java.lang.NullPointerException - PullRequest
2 голосов
/ 31 октября 2011

Я недавно сделал новую установку Ubuntu 11.10, устанавливая последнюю версию Eclipse CDT. Я пытаюсь отладить существующий проект C ++ с помощью make-файлов и файлов проекта Eclipse, созданных CMake. При попытке отладки (со всеми правильными настройками, указанными в конфигурации отладки), запуск завершается с ошибкой:

An internal error occurred during: "Launching mops-app".
java.lang.NullPointerException

Этого не происходит при попытке отладки минимального проекта Hello World. Проект может быть успешно отлажен в Ubuntu 11.04 с последней версией Eclipse CDT. Версия Java на моей машине:

java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

И вывод Eclipse при попытке запустить конфигурацию отладки:

!ENTRY org.eclipse.core.jobs 4 2 2011-10-31 11:50:24.211
!MESSAGE An internal error occurred during: "Launching mops-app".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1837)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1848)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1848)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.setSourceLookupPath(CDebugTarget.java:1815)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initializeSourceLookupPath(CDebugTarget.java:383)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.initialize(CDebugTarget.java:282)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.<init>(CDebugTarget.java:275)
    at org.eclipse.cdt.debug.core.CDIDebugModel$1.run(CDIDebugModel.java:100)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
    at org.eclipse.cdt.debug.core.CDIDebugModel.newDebugTarget(CDIDebugModel.java:105)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchLocalDebugSession(LocalCDILaunchDelegate.java:162)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launchDebugger(LocalCDILaunchDelegate.java:112)
    at org.eclipse.cdt.launch.internal.LocalCDILaunchDelegate.launch(LocalCDILaunchDelegate.java:72)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Проблема была связана с обновлением версии CMake. CMake 2.8.5 сгенерировал записи 'Subproject' в файлах Eclipse .cproject и .project. По какой-то причине CMake по умолчанию велел Eclipse игнорировать пути к подпроектам, что приводило в замешательство индексатор Eclipse при попытке отладки кода.

Проблема легко решается закомментированием записи <linkedResources> файла .project, например

<!--link>
    <name>[Subprojects]/MOPS</name>
    <type>2</type>
    <location>/home/user/mops-c-Git/src/mopsc</location>
</link-->

и комментирование части подпроекта <pathentry> записи файла .cproject, например

<!--pathentry kind="src" path="MOPS"/>
<pathentry excluding="MOPS/|**/CMakeFiles/" kind="out" path=""/-->
1 голос
/ 19 февраля 2015

У меня была похожая проблема (Ubuntu 14.04, SBT 13.1.0) - запуск Debugger вызвал java.lang.NullPointerException.Проверяя журнал, запустив Eclipse с eclipse-nios2 -consoleLog, у меня были похожие записи:

java.lang.NullPointerException
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1843)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1864)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.getSourceLookupPath(CDebugTarget.java:1864)
    at org.eclipse.cdt.debug.internal.core.model.CDebugTarget.setSourceLookupPath(CDebugTarget.java:1817)
    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)

Я считаю, что причина та же;Я нашел другое исправление и хотел поделиться им для полноты.

Я связал ресурсы в своем проекте, и журнал заставил меня подозревать, что они были причиной.Я связал ресурсы с Import->General->File system->[... Create links in workspace...].

. Я удалил эти ссылки и вместо этого связал их с источниками с помощью Project Properties->C/C++ General->Paths and Symbols->[tab] Source Location->Link folder....

Это позволило отладчику работать нормально, без жалоб.

1 голос
/ 01 ноября 2011

Убедитесь, что вы выбрали исполняемый файл для запуска в меню «Выполнить / запустить» или «Выполнить / отладить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...