Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 321932 - [update policy] When in manual mode, switching number format should still show value in other formats if value is cached.
Summary: [update policy] When in manual mode, switching number format should still sho...
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-debug-dsf (show other bugs)
Version: 8.0   Edit
Hardware: PC Linux
: P3 minor (vote)
Target Milestone: 8.0   Edit
Assignee: Pawel Piech CLA
QA Contact: Pawel Piech CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-05 18:18 EDT by Pawel Piech CLA
Modified: 2010-11-30 17:50 EST (History)
4 users (show)

See Also:
pawel.1.piech: review? (Randy.Rohrbach)


Attachments
Work in progress. (23.16 KB, patch)
2010-08-05 18:19 EDT, Pawel Piech CLA
pawel.1.piech: iplog-
Details | Diff
Tests for new features (also work in progress). (105.59 KB, patch)
2010-08-05 18:20 EDT, Pawel Piech CLA
pawel.1.piech: iplog-
Details | Diff
Fix. (132.66 KB, patch)
2010-09-10 19:54 EDT, Pawel Piech CLA
pawel.1.piech: iplog-
Details | Diff
Unit tests for FormattedValuesVMUtil. (138.82 KB, patch)
2010-09-10 19:55 EDT, Pawel Piech CLA
pawel.1.piech: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pawel Piech CLA 2010-08-05 18:18:12 EDT
This is a rather nit-picky bug in the behavior of the variables views when in manual update mode.  When in manual mode, user can still select different number formats, however the current behavior is to ignore the newly selected number format until the user re-freshes the view.  

Displaying a value in different formats should be possible without fetching new data from the target as long as the values in other formats are cached, which for example happens when user displays a value in the detail pane.
Comment 1 Pawel Piech CLA 2010-08-05 18:19:41 EDT
Created attachment 175988 [details]
Work in progress.
Comment 2 Pawel Piech CLA 2010-08-05 18:20:12 EDT
Created attachment 175989 [details]
Tests for new features (also work in progress).
Comment 3 Pawel Piech CLA 2010-09-10 19:54:42 EDT
Created attachment 178668 [details]
Fix.

This fix solves the bug though it adds a quite a bit of functionality.  Still needs some polish and more tests.
Comment 4 Pawel Piech CLA 2010-09-10 19:55:26 EDT
Created attachment 178669 [details]
Unit tests for FormattedValuesVMUtil.
Comment 5 Pawel Piech CLA 2010-09-24 15:04:19 EDT
Small bug, big fix (1100 LOC for DSF changes an additional 1500 LOC for unit tests). 

The major change is support for finer status reporting for properties updates, and access to cache entries in caching VM provider.

Randy, please review.
Comment 6 CDT Genie CLA 2010-09-24 15:23:05 EDT
*** cdt cvs genie on behalf of ppiech ***
Bug 321932 - [update policy] When in manual mode, switching number format should still show value in other formats if value is cached.

[*] IPropertiesUpdate.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/IPropertiesUpdate.java?root=Tools_Project&r1=1.5&r2=1.6
[*] MessagesForProperties.java 1.5 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/MessagesForProperties.java?root=Tools_Project&r1=1.4&r2=1.5
[*] PropertiesBasedLabelProvider.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesBasedLabelProvider.java?root=Tools_Project&r1=1.6&r2=1.7
[*] VMDelegatingPropertiesUpdate.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/VMDelegatingPropertiesUpdate.java?root=Tools_Project&r1=1.2&r2=1.3
[*] MessagesForProperties.properties 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/MessagesForProperties.properties?root=Tools_Project&r1=1.1&r2=1.2
[+] IPropertiesUpdateListener.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/IPropertiesUpdateListener.java?root=Tools_Project&revision=1.1&view=markup
[*] VMPropertiesUpdate.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/VMPropertiesUpdate.java?root=Tools_Project&r1=1.3&r2=1.4
[+] PropertiesUpdateStatus.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesUpdateStatus.java?root=Tools_Project&revision=1.1&view=markup

[+] ErrorLabelForeground.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/ErrorLabelForeground.java?root=Tools_Project&revision=1.1&view=markup
[*] ErrorLabelText.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/ErrorLabelText.java?root=Tools_Project&r1=1.2&r2=1.3
[*] MessagesForDebugVM.properties 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/MessagesForDebugVM.properties?root=Tools_Project&r1=1.1&r2=1.2

[+] FormattedValueRetriever.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java?root=Tools_Project&revision=1.1&view=markup
[*] FormattedValueLabelText.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueLabelText.java?root=Tools_Project&r1=1.3&r2=1.4
[*] FormattedValueVMUtil.java 1.13 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueVMUtil.java?root=Tools_Project&r1=1.12&r2=1.13

[*] NumberFormatDetailPane.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/viewmodel/numberformat/detail/NumberFormatDetailPane.java?root=Tools_Project&r1=1.11&r2=1.12

[*] AbstractCachingVMProvider.java 1.20 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java?root=Tools_Project&r1=1.19&r2=1.20
[+] IVMUpdatePolicyExtension.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/IVMUpdatePolicyExtension.java?root=Tools_Project&revision=1.1&view=markup
[+] ICachingVMProviderExtension2.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/ICachingVMProviderExtension2.java?root=Tools_Project&revision=1.1&view=markup
[+] ICacheEntry.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/ICacheEntry.java?root=Tools_Project&revision=1.1&view=markup

[*] RegisterBitFieldVMNode.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterBitFieldVMNode.java?root=Tools_Project&r1=1.9&r2=1.10
[*] RegisterVMNode.java 1.14 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java?root=Tools_Project&r1=1.13&r2=1.14

[*] DebugManualUpdatePolicy.java 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/update/DebugManualUpdatePolicy.java?root=Tools_Project&r1=1.1&r2=1.2

[*] VariableVMNode.java 1.22 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableVMNode.java?root=Tools_Project&r1=1.21&r2=1.22

[+] JFaceViewerFormattedValueTests.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/JFaceViewerFormattedValueTests.java?root=Tools_Project&revision=1.1&view=markup
[*] TestModel.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModel.java?root=Tools_Project&r1=1.2&r2=1.3
[*] VirtualViewerPerformanceTests.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/VirtualViewerPerformanceTests.java?root=Tools_Project&r1=1.2&r2=1.3
[+] TestModelCachingVMProvider.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelCachingVMProvider.java?root=Tools_Project&revision=1.1&view=markup
[*] PerformanceTests.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/PerformanceTests.java?root=Tools_Project&r1=1.3&r2=1.4
[*] TestModelVMNode.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelVMNode.java?root=Tools_Project&r1=1.2&r2=1.3
[*] TestModelUpdatesListener.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelUpdatesListener.java?root=Tools_Project&r1=1.3&r2=1.4
[*] TestElementVMContext.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestElementVMContext.java?root=Tools_Project&r1=1.2&r2=1.3
[+] FormattedValueTests.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java?root=Tools_Project&revision=1.1&view=markup
[+] IFormattedValuesListener.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/IFormattedValuesListener.java?root=Tools_Project&revision=1.1&view=markup
[*] TestModelVMAdapter.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelVMAdapter.java?root=Tools_Project&r1=1.2&r2=1.3
[-] ITestModelUpdatesListenerConstants.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/ITestModelUpdatesListenerConstants.java?root=Tools_Project&view=markup
[+] TestModelDMVMNode.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelDMVMNode.java?root=Tools_Project&revision=1.1&view=markup
[+] DummyFormattedValueService.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/DummyFormattedValueService.java?root=Tools_Project&revision=1.1&view=markup
[*] TestModelVMProvider.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/TestModelVMProvider.java?root=Tools_Project&r1=1.2&r2=1.3
[+] FormattedValuesListener.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValuesListener.java?root=Tools_Project&revision=1.1&view=markup

[*] ServiceEventWaitor.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/ServiceEventWaitor.java?root=Tools_Project&r1=1.2&r2=1.3
[+] IViewerUpdatesListenerConstants.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/IViewerUpdatesListenerConstants.java?root=Tools_Project&revision=1.1&view=markup
[+] ViewerUpdatesListener.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/ViewerUpdatesListener.java?root=Tools_Project&revision=1.1&view=markup

[+] VMTestBase.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/debug/vm/launch/VMTestBase.java?root=Tools_Project&revision=1.1&view=markup
[+] VMTest1.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/debug/vm/launch/VMTest1.java?root=Tools_Project&revision=1.1&view=markup
Comment 7 Marc Khouzam CLA 2010-09-28 11:09:22 EDT
Pawel, there is a missing @since tag in AbstractDMContext for EMPTY_PARENTS_ARRAY.  However, this constant is never used anywhere.  Do you want to keep it and add the @since tag, or remove it altogether?
Comment 8 CDT Genie CLA 2010-09-28 11:23:05 EDT
*** cdt cvs genie on behalf of ppiech ***
Bug 321932 -  [update policy] When in manual mode, switching number format should still show value in other formats if value is cached.

[*] IFormattedValues.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java?root=Tools_Project&r1=1.8&r2=1.9

[*] AbstractDMContext.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/datamodel/AbstractDMContext.java?root=Tools_Project&r1=1.6&r2=1.7
Comment 9 Pawel Piech CLA 2010-09-28 13:45:33 EDT
(In reply to comment #7)
> Pawel, there is a missing @since tag in AbstractDMContext for
> EMPTY_PARENTS_ARRAY.  However, this constant is never used anywhere.  Do you
> want to keep it and add the @since tag, or remove it altogether?

Oops, thank you.  It got added there by accident... I'll turn the API checker back on now ;-)
Comment 11 Marc Khouzam CLA 2010-11-29 11:26:50 EST
I'm getting an assertion pretty often with this fix.  I'm not sure if it is something that DSF-GDB was always doing wrong or if the assert made an wrong assumption.

Any opinion?


!ENTRY org.eclipse.cdt.dsf 4 -1 2010-11-29 11:21:15.899
!MESSAGE Uncaught exception in DSF executor thread
!STACK 0
java.lang.AssertionError: VMPropertiesUpdate status should always be a PropertiesUpdateStatus
	at org.eclipse.cdt.dsf.ui.viewmodel.properties.VMPropertiesUpdate.setStatus(VMPropertiesUpdate.java:120)
	at org.eclipse.cdt.dsf.ui.viewmodel.properties.VMDelegatingPropertiesUpdate.setStatus(VMDelegatingPropertiesUpdate.java:62)
	at org.eclipse.cdt.dsf.ui.concurrent.ViewerDataRequestMonitor.handleCancel(ViewerDataRequestMonitor.java:70)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleFailure(RequestMonitor.java:386)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleCompleted(RequestMonitor.java:355)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor$2.run(RequestMonitor.java:298)
	at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:371)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Uncaught exception in session executor thread: java.lang.AssertionError: VMPropertiesUpdate status should always be a PropertiesUpdateStatus
	at org.eclipse.cdt.dsf.ui.viewmodel.properties.VMPropertiesUpdate.setStatus(VMPropertiesUpdate.java:120)
	at org.eclipse.cdt.dsf.ui.viewmodel.properties.VMDelegatingPropertiesUpdate.setStatus(VMDelegatingPropertiesUpdate.java:62)
	at org.eclipse.cdt.dsf.ui.concurrent.ViewerDataRequestMonitor.handleCancel(ViewerDataRequestMonitor.java:70)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleFailure(RequestMonitor.java:386)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleCompleted(RequestMonitor.java:355)
	at org.eclipse.cdt.dsf.concurrent.RequestMonitor$2.run(RequestMonitor.java:298)
	at org.eclipse.cdt.dsf.concurrent.DefaultDsfExecutor$TracingWrapperRunnable.run(DefaultDsfExecutor.java:371)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Comment 12 Pawel Piech CLA 2010-11-30 17:50:57 EST
(In reply to comment #11)
Thanks Marc.  See bug 328883