This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
C++ Code: class A { public: A() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { abc[i][j] = 1 + i + j; } } } void foo() {} private: int abc[5][5]; }; int main(int argc, char** argv) { A a; a.foo(); return 0; } Scenario: - Call context menu on project node and select Step Into - Add 'a' variable into Variables tab - Select a -> abc -> abc[0] -> abc[0][0] node - Press Step Over ===> SEVERE [org.openide.util.Exceptions] java.lang.ClassCastException: org.netbeans.modules.cnd.debugger.gdb2.GdbVariable cannot be cast to org.netbeans.modules.cnd.debugger.gdb2.GdbWatch at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.formatRegisterIfNeeded(GdbDebuggerImpl.java:2931) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.updateValue(GdbDebuggerImpl.java:3304) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.interpUpdate(GdbDebuggerImpl.java:3506) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.access$6300(GdbDebuggerImpl.java:152) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl$35.onDone(GdbDebuggerImpl.java:3668) at org.netbeans.modules.cnd.debugger.gdb2.mi.MICommandManager.dispatch(MICommandManager.java:194) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.dispatch(MIProxy.java:188) at org.netbeans.modules.cnd.debugger.gdb2.Gdb$MyMIProxy.dispatch(Gdb.java:697) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.result(MIProxy.java:193) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.processLine(MIProxy.java:157) at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:369) Caused: java.lang.Exception: when processing line: 67^done,changelist=[{name="var1.private.abc.0.0",value="1",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.1",value="2",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.2",value="3",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.3",value="4",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.4",value="5",in_scope="true",type_changed="false",has_more="0"}] at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:371) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) SEVERE [org.openide.util.Exceptions] java.lang.ClassCastException: org.netbeans.modules.cnd.debugger.gdb2.GdbVariable cannot be cast to org.netbeans.modules.cnd.debugger.gdb2.GdbWatch at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.formatRegisterIfNeeded(GdbDebuggerImpl.java:2931) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.updateValue(GdbDebuggerImpl.java:3304) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.interpUpdate(GdbDebuggerImpl.java:3506) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.access$6300(GdbDebuggerImpl.java:152) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl$35.onDone(GdbDebuggerImpl.java:3668) at org.netbeans.modules.cnd.debugger.gdb2.mi.MICommandManager.dispatch(MICommandManager.java:194) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.dispatch(MIProxy.java:188) at org.netbeans.modules.cnd.debugger.gdb2.Gdb$MyMIProxy.dispatch(Gdb.java:697) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.result(MIProxy.java:193) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.processLine(MIProxy.java:157) at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:369) Caused: java.lang.Exception: when processing line: 57^done,changelist=[{name="var5.private.abc.0.0",value="1",in_scope="true",type_changed="false",has_more="0"},{name="var5.private.abc.0.1",value="2",in_scope="true",type_changed="false",has_more="0"},{name="var5.private.abc.0.2",value="3",in_scope="true",type_changed="false",has_more="0"},{name="var5.private.abc.0.3",value="4",in_scope="true",type_changed="false",has_more="0"},{name="var5.private.abc.0.4",value="5",in_scope="true",type_changed="false",has_more="0"}] at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:371) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) INFO [org.netbeans.modules.cnd.editor.cos.COSRedirectorImpl]: inode file Changed org.netbeans.modules.cnd.source.CCDataObject@57b5bf0a[/export/files/NB/CppApplication_2/main.cpp@ce748857:13679d10] Key{fs=0, dev=0, inode=3228260}->Key{fs=0, dev=0, inode=3228260} SEVERE [org.openide.util.Exceptions] java.lang.ClassCastException: org.netbeans.modules.cnd.debugger.gdb2.GdbVariable cannot be cast to org.netbeans.modules.cnd.debugger.gdb2.GdbWatch at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.formatRegisterIfNeeded(GdbDebuggerImpl.java:2931) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.updateValue(GdbDebuggerImpl.java:3304) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.interpUpdate(GdbDebuggerImpl.java:3506) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.access$6300(GdbDebuggerImpl.java:152) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl$35.onDone(GdbDebuggerImpl.java:3668) at org.netbeans.modules.cnd.debugger.gdb2.mi.MICommandManager.dispatch(MICommandManager.java:194) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.dispatch(MIProxy.java:188) at org.netbeans.modules.cnd.debugger.gdb2.Gdb$MyMIProxy.dispatch(Gdb.java:697) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.result(MIProxy.java:193) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.processLine(MIProxy.java:157) at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:369) Caused: java.lang.Exception: when processing line: 49^done,changelist=[{name="var1.private.abc.0.0",value="1",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.1",value="2",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.2",value="3",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.3",value="4",in_scope="true",type_changed="false",has_more="0"},{name="var1.private.abc.0.4",value="5",in_scope="true",type_changed="false",has_more="0"}] at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:371) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) SEVERE [org.openide.util.Exceptions] java.lang.ClassCastException: org.netbeans.modules.cnd.debugger.gdb2.GdbVariable cannot be cast to org.netbeans.modules.cnd.debugger.gdb2.GdbWatch at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.formatRegisterIfNeeded(GdbDebuggerImpl.java:2931) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.updateValue(GdbDebuggerImpl.java:3304) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.interpUpdate(GdbDebuggerImpl.java:3506) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.access$6300(GdbDebuggerImpl.java:152) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl$35.onDone(GdbDebuggerImpl.java:3668) at org.netbeans.modules.cnd.debugger.gdb2.mi.MICommandManager.dispatch(MICommandManager.java:194) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.dispatch(MIProxy.java:188) at org.netbeans.modules.cnd.debugger.gdb2.Gdb$MyMIProxy.dispatch(Gdb.java:697) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.result(MIProxy.java:193) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.processLine(MIProxy.java:157) at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:369) Caused: java.lang.Exception: when processing line: 50^done,changelist=[{name="var4.private.abc.0.0",value="1",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.1",value="2",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.2",value="3",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.3",value="4",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.4",value="5",in_scope="true",type_changed="false",has_more="0"}] at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:371) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058) SEVERE [org.openide.util.Exceptions] java.lang.ClassCastException: org.netbeans.modules.cnd.debugger.gdb2.GdbVariable cannot be cast to org.netbeans.modules.cnd.debugger.gdb2.GdbWatch at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.formatRegisterIfNeeded(GdbDebuggerImpl.java:2931) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.updateValue(GdbDebuggerImpl.java:3304) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.interpUpdate(GdbDebuggerImpl.java:3506) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl.access$6300(GdbDebuggerImpl.java:152) at org.netbeans.modules.cnd.debugger.gdb2.GdbDebuggerImpl$35.onDone(GdbDebuggerImpl.java:3668) at org.netbeans.modules.cnd.debugger.gdb2.mi.MICommandManager.dispatch(MICommandManager.java:194) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.dispatch(MIProxy.java:188) at org.netbeans.modules.cnd.debugger.gdb2.Gdb$MyMIProxy.dispatch(Gdb.java:697) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.result(MIProxy.java:193) at org.netbeans.modules.cnd.debugger.gdb2.mi.MIProxy.processLine(MIProxy.java:157) at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:369) Caused: java.lang.Exception: when processing line: 50^done,changelist=[{name="var4.private.abc.0.0",value="1",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.1",value="2",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.2",value="3",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.3",value="4",in_scope="true",type_changed="false",has_more="0"},{name="var4.private.abc.0.4",value="5",in_scope="true",type_changed="false",has_more="0"}] at org.netbeans.modules.cnd.debugger.gdb2.Tap$4.run(Tap.java:371) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)
fixed in enum/release82 changeset: 315844:61c784e57584 branch: release82 tag: tip parent: 315773:97762adeb5f9 user: Maria Dalmatova <mromashova@netbeans.org> date: Tue May 16 11:23:38 2017 +0300 summary: fixed bz#270574 - java.lang.ClassCastException in Variables tab
Integrated into 'main-silver', will be available in build *201705180001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-silver/rev/46baab93d304 User: Maria Dalmatova <mromashova@netbeans.org> Log: fixed bz#270574 - java.lang.ClassCastException in Variables tab check instanceof but it is really strange that API allows to create GdbVariable which answers "yes" on the question isWatch and not GdbWatch instance. As I found in the code children of the watch are created as GdbVariable with isWatch = true parameter. (transplanted from 61c784e575842bb53c57508048f9cb445d527628)