Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] java.lang.AssertionError in GdbCliConsoleManager.stopConsole(GdbCliConsoleManager.java:103)

As for your original AssertionError, I have checked and CDT 9.3
(Oxygen) does not have that problem. The assertion is not present in
that version. Additionally, users running with Assertions off (no -ea
flag) won't have that problem.

As to your new exception, this is because CDT is having trouble
determining GDB version. Without assertions on it just falls back to
best it can do.

So I have a few questions:
1) If you run without -ea (as a user does) do you have the GDB console?
2) Do you have any log output like "Could not determine GDB version
using command" or "Error with command" as they are the messages that
AFAICT will be emitted at the root of the problem.
3) Can you include the output of gdb --version (for the GDB you are using)?

Thanks,
Jonah

~~~
Jonah Graham
Kichwa Coders Ltd.
www.kichwacoders.com


On 1 June 2017 at 17:29, Liviu Ionescu <ilg@xxxxxxxxxx> wrote:
>
>> On 1 Jun 2017, at 16:32, Jonah Graham <jonah@xxxxxxxxxxxxxxxx> wrote:
>>
>> ... the code in
>> GdbCliConsoleManager is assuming that the console is a more narrow
>> type than it is. If so, then I think the assertion is wrong and should
>> simply be removed (there is an instanceof check on the next line).
>
> I just ran a debug session and with my openocd debug plugin the assert fails 3 times, due to previous `getConsole(launch)` returning null.
>
> the assert is triggered when the session terminates.
>
> ---
>
> but looking carefully I also noticed another problem: during session startup, there are two more exceptions:
>
> !ENTRY org.eclipse.cdt.dsf 4 -1 2017-06-01 19:06:37.568
> !MESSAGE Invocation exception when calling a service event handler method
> !STACK 0
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at org.eclipse.cdt.dsf.service.DsfSession.doDispatchEvent(DsfSession.java:531)
>         at org.eclipse.cdt.dsf.service.DsfSession.access$2(DsfSession.java:475)
>         at org.eclipse.cdt.dsf.service.DsfSession$3.run(DsfSession.java:398)
>         at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:374)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.AssertionError: Should not happen since the gdb version is cached
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbConsoleCreator.verifyAndCreateCliConsole(GdbCliConsoleManager.java:191)
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbConsoleCreator.access$1(GdbCliConsoleManager.java:185)
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbServiceStartedListener.eventDispatched(GdbCliConsoleManager.java:237)
>         ... 15 more
> Root exception:
> java.lang.AssertionError: Should not happen since the gdb version is cached
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbConsoleCreator.verifyAndCreateCliConsole(GdbCliConsoleManager.java:191)
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbConsoleCreator.access$1(GdbCliConsoleManager.java:185)
>         at org.eclipse.cdt.dsf.gdb.internal.ui.console.GdbCliConsoleManager$GdbServiceStartedListener.eventDispatched(GdbCliConsoleManager.java:237)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at org.eclipse.cdt.dsf.service.DsfSession.doDispatchEvent(DsfSession.java:531)
>         at org.eclipse.cdt.dsf.service.DsfSession.access$2(DsfSession.java:475)
>         at org.eclipse.cdt.dsf.service.DsfSession$3.run(DsfSession.java:398)
>         at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:374)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748)
>
> !ENTRY org.eclipse.cdt.dsf 4 -1 2017-06-01 19:06:37.573
> !MESSAGE Uncaught exception in DSF executor thread
> !STACK 0
> java.lang.AssertionError: Exception thrown by a IServiceEventListener.ServiceHandlerMethod method
>         at org.eclipse.cdt.dsf.service.DsfSession.doDispatchEvent(DsfSession.java:541)
>         at org.eclipse.cdt.dsf.service.DsfSession.access$2(DsfSession.java:475)
>         at org.eclipse.cdt.dsf.service.DsfSession$3.run(DsfSession.java:398)
>         at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:374)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748)
> Uncaught exception in session executor thread: java.lang.AssertionError: Exception thrown by a IServiceEventListener.ServiceHandlerMethod method
>         at org.eclipse.cdt.dsf.service.DsfSession.doDispatchEvent(DsfSession.java:541)
>         at org.eclipse.cdt.dsf.service.DsfSession.access$2(DsfSession.java:475)
>         at org.eclipse.cdt.dsf.service.DsfSession$3.run(DsfSession.java:398)
>         at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:374)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748)
>
> GnuArmServicesFactory.createProcessesService(org.eclipse.cdt.dsf.service.DsfSession@30) ilg.gnumcueclipse.debug.gdbjtag.openocd.dsf.ServicesFactory@3b7d3ad1
> GnuArmProcesses_7_2_1.initialize()
> GnuArmProcesses_7_2_1.initialize() done
>
> ---
>
> the effect is that the arm-none-eabi-gdb output is no longer visible, I can see only the openocd console.
>
> I can enable the gdb trace console, but the main gdb console is not present.
>
> any suggestion?
>
>
> regards,
>
> Liviu
>
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top