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.

Bug 132427 - NPE in 'Disassembly' tab
Summary: NPE in 'Disassembly' tab
Status: VERIFIED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: Egor Ushakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-09 16:00 UTC by soldatov
Modified: 2008-04-17 10:09 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
gdb-log (12.22 KB, text/plain)
2008-04-09 20:04 UTC, alexandrov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description soldatov 2008-04-09 16:00:27 UTC
Scenario:
- Create Args project
- Select project in 'Projects' tab and call context menu. Select 'Step into' menu item
==> Debugger started
- Push 'Window|Debugging|Dissambly' menu item
- Move cursor on some register
==> On other machines tooltip appears. On my machine I see NPE (always) instead of tooltip.

java.lang.NullPointerException
	at org.netbeans.modules.cnd.debugger.gdb.disassembly.DisToolTipAnnotation.run(DisToolTipAnnotation.java:121)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)
Comment 1 soldatov 2008-04-09 16:03:55 UTC
And other scenario:
- Create Args project
- Select project in 'Projects' tab and call context menu. Select 'Step into' menu item
==> Debugger started
- Push 'Window|Debugging|Registers' menu item
==> NPE

java.lang.NullPointerException
	at java.lang.String.compareTo(String.java:1168)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent$1.compare(RegistersTopComponent.java:212)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent$1.compare(RegistersTopComponent.java:211)
	at java.util.Arrays.mergeSort(Arrays.java:1270)
	at java.util.Arrays.mergeSort(Arrays.java:1282)
	at java.util.Arrays.mergeSort(Arrays.java:1281)
	at java.util.Arrays.mergeSort(Arrays.java:1282)
	at java.util.Arrays.mergeSort(Arrays.java:1282)
	at java.util.Arrays.sort(Arrays.java:1210)
	at java.util.Collections.sort(Collections.java:159)
	at
org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent$RegisterTableModel.refresh(RegistersTopComponent.java:205)
	at
org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent$RegisterTableModel.access$200(RegistersTopComponent.java:155)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent.<init>(RegistersTopComponent.java:53)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent.getDefault(RegistersTopComponent.java:87)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersTopComponent.findInstance(RegistersTopComponent.java:100)
	at org.netbeans.modules.cnd.debugger.gdb.ui.RegistersAction.actionPerformed(RegistersAction.java:25)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
	at java.awt.Component.processMouseEvent(Component.java:6041)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5806)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4413)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4243)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2440)
	at java.awt.Component.dispatchEvent(Component.java:4243)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Comment 2 Jesse Grodnik 2008-04-09 16:33:06 UTC
Can you please fully characterize the machine on which this defect occurs: OS version, Java version etc. Also can you
characterize one or two machines on which defect does NOT occur.
Comment 3 soldatov 2008-04-09 17:01:12 UTC
Assembler fails on such machine:
SLES 9, 64-bit, java 1.6.0 (1.6.0_04 I think), gdb 6.6

Works correctly on Ubuntu 7 (32 but) and Fedora Core (32 bit)

Comment 4 Egor Ushakov 2008-04-09 17:41:01 UTC
Could you please attach gdb log
Comment 5 Egor Ushakov 2008-04-09 17:51:43 UTC
first part fixed in:
http://hg.netbeans.org/main/rev/e6a900c24eca
Comment 6 alexandrov 2008-04-09 20:04:36 UTC
Created attachment 59927 [details]
gdb-log
Comment 7 Egor Ushakov 2008-04-09 20:29:16 UTC
The problem is that gdb gives 50 register names and 58 register values.
I will fix exception, but we still have to find out why gdb reports inconsistent information on this platform,
and what are those 8 extra registers we have values but not names for.
Comment 8 _ gordonp 2008-04-09 21:07:22 UTC
Could the extra values be because 8 registers are 64-bit and the rest 32-bit?
Comment 9 Egor Ushakov 2008-04-10 10:15:47 UTC
The problem is:
gdb is asked for register names too early (before the debugged program is loaded)
and gives 32-bit registers. After 64-bit program is loaded it uses 64-bit registers.
Comment 10 Egor Ushakov 2008-04-10 10:43:12 UTC
Fixed in the changeset:
http://hg.netbeans.org/main/rev/64221f636744
Comment 11 Jesse Grodnik 2008-04-10 21:34:22 UTC
Fixed in trunk. Escalated to P1. Request permission to fix in RC2.
Comment 12 soldatov 2008-04-11 11:09:05 UTC
verified in RC1 build + jar with fixes from developer
Comment 14 soldatov 2008-04-17 10:09:44 UTC
verified in NetBeans 6.1 RC2