Community
Participate
Working Groups
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.
Created attachment 175988 [details] Work in progress.
Created attachment 175989 [details] Tests for new features (also work in progress).
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.
Created attachment 178669 [details] Unit tests for FormattedValuesVMUtil.
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.
*** 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
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?
*** 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
(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 ;-)
*** cdt cvs genie on behalf of ppiech *** Bug 321932 - Removed a constant accidentally added to the API in last checkin. [*] TestModel.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/TestModel.java?root=Tools_Project&r1=1.3&r2=1.4 [*] AbstractDMContext.java 1.8 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.7&r2=1.8
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)
(In reply to comment #11) Thanks Marc. See bug 328883