Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@xamarin.com>2016-04-13 14:27:42 +0300
committerDavid Karlaš <david.karlas@xamarin.com>2016-04-13 14:27:42 +0300
commit751bbab2f08e55a1d1fd89b17620ebebf7d71891 (patch)
tree6cdbab36be6049898f348c29359efaac9aadb91c /main/src/addins/MonoDevelop.Debugger
parentfdcef13057a9c4a9bc924602c9b2b33c1da3bf63 (diff)
parent036b2fbc3b515ce36b4ddaf0cc76b6ffa63db9d3 (diff)
Merge master into newExceptionDialog
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger')
-rw-r--r--main/src/addins/MonoDevelop.Debugger/ChangeLog1439
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs16
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs7
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog19
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs49
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs7
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog44
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs23
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs361
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj5
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml20
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj365
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs103
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs78
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs37
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs77
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs104
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs281
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs21
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs172
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs229
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs18
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs14
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs40
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs24
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs13
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs59
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs6
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs2
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs20
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs123
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs2
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs49
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs104
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs32
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs42
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.pngbin940 -> 473 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.pngbin2618 -> 1174 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.pngbin0 -> 469 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.pngbin0 -> 1171 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.pngbin0 -> 469 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.pngbin0 -> 1151 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.pngbin0 -> 498 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.pngbin0 -> 1207 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.pngbin0 -> 362 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.pngbin0 -> 697 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.pngbin754 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.pngbin807 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.pngbin1622 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.pngbin1659 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.pngbin1621 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.pngbin2612 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.pngbin1639 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.pngbin2662 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/exception-48.pngbin0 -> 1356 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.pngbin0 -> 2649 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.pngbin0 -> 1272 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.pngbin0 -> 2532 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.pngbin740 -> 511 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.pngbin1703 -> 845 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.pngbin0 -> 512 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.pngbin0 -> 848 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.pngbin637 -> 465 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.pngbin1372 -> 814 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.pngbin0 -> 503 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.pngbin0 -> 777 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.pngbin750 -> 406 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.pngbin1525 -> 610 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.pngbin0 -> 387 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.pngbin0 -> 596 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.pngbin242 -> 122 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.pngbin425 -> 212 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.pngbin0 -> 122 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.pngbin0 -> 212 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.pngbin281 -> 226 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.pngbin669 -> 402 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.pngbin0 -> 218 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.pngbin0 -> 398 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.pngbin631 -> 219 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.pngbin1428 -> 336 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.pngbin0 -> 223 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.pngbin0 -> 337 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.pngbin429 -> 219 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.pngbin1084 -> 336 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.pngbin0 -> 226 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.pngbin0 -> 335 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.pngbin578 -> 171 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.pngbin1199 -> 296 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.pngbin0 -> 170 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.pngbin0 -> 294 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16.pngbin487 -> 338 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.pngbin1171 -> 532 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.pngbin0 -> 306 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.pngbin0 -> 500 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.pngbin0 -> 316 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.pngbin0 -> 511 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.pngbin0 -> 314 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.pngbin0 -> 506 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.pngbin327 -> 275 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.pngbin376 -> 399 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.pngbin0 -> 166 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.pngbin0 -> 232 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.pngbin0 -> 101 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.pngbin0 -> 120 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.pngbin0 -> 98 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.pngbin0 -> 116 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause.pngbin210 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.pngbin212 -> 0 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.pngbin247 -> 165 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.pngbin294 -> 244 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.pngbin0 -> 160 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.pngbin0 -> 248 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.pngbin0 -> 161 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.pngbin0 -> 254 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.pngbin0 -> 161 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.pngbin0 -> 253 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.pngbin249 -> 162 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.pngbin296 -> 238 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.pngbin0 -> 162 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.pngbin0 -> 248 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.pngbin0 -> 166 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.pngbin0 -> 253 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.pngbin0 -> 166 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.pngbin0 -> 252 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.pngbin426 -> 279 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.pngbin596 -> 496 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.pngbin0 -> 273 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.pngbin0 -> 448 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.pngbin0 -> 273 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.pngbin0 -> 492 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.pngbin0 -> 271 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.pngbin0 -> 493 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.pngbin0 -> 465 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.pngbin0 -> 1172 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.pngbin0 -> 451 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.pngbin0 -> 1099 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.pngbin0 -> 343 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.pngbin0 -> 675 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.pngbin0 -> 343 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.pngbin0 -> 675 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.pngbin513 -> 179 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.pngbin1309 -> 308 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.pngbin0 -> 188 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.pngbin0 -> 306 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.pngbin0 -> 175 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.pngbin0 -> 312 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.pngbin0 -> 175 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.pngbin0 -> 312 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.pngbin595 -> 155 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.pngbin1245 -> 259 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.pngbin0 -> 156 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.pngbin0 -> 257 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.pngbin0 -> 157 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.pngbin0 -> 243 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.pngbin0 -> 157 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.pngbin0 -> 243 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.pngbin713 -> 359 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.pngbin1843 -> 614 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.pngbin0 -> 357 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.pngbin0 -> 556 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.pngbin0 -> 259 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.pngbin0 -> 356 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.pngbin0 -> 259 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.pngbin0 -> 356 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.pngbin673 -> 263 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.pngbin1262 -> 702 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.pngbin0 -> 266 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.pngbin0 -> 687 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.pngbin0 -> 206 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.pngbin0 -> 468 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.pngbin0 -> 206 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.pngbin0 -> 468 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.pngbin0 -> 222 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.pngbin0 -> 276 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.pngbin754 -> 373 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.pngbin1835 -> 734 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.pngbin0 -> 374 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.pngbin0 -> 719 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.pngbin0 -> 275 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.pngbin0 -> 550 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.pngbin0 -> 275 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.pngbin0 -> 550 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.pngbin466 -> 229 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.pngbin974 -> 408 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.pngbin0 -> 227 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.pngbin0 -> 406 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.pngbin0 -> 219 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.pngbin0 -> 377 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.pngbin0 -> 222 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.pngbin0 -> 392 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.pngbin0 -> 310 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.pngbin0 -> 628 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.pngbin0 -> 314 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.pngbin0 -> 612 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.pngbin0 -> 519 bytes
-rw-r--r--main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.pngbin0 -> 1198 bytes
197 files changed, 1379 insertions, 2629 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/ChangeLog b/main/src/addins/MonoDevelop.Debugger/ChangeLog
deleted file mode 100644
index c2254df404..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/ChangeLog
+++ /dev/null
@@ -1,1439 +0,0 @@
-2010-07-18 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/DebuggingService.cs: Track API changes.
-
-2010-07-15 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2010-07-13 Levi Bard <levi@unity3d.com>
-
- * MonoDevelop.Debugger/ExceptionCaughtDialog.cs:
- Unescape exception message.
-
-2010-07-07 Levi Bard <levi@unity3d.com>
-
- * MonoDevelop.Debugger/LocalsPad.cs:
- Persist local pad tree state while single-stepping within the same function.
-
-2010-06-10 Michael Hutchinson <mhutchinson@novell.com>
-
- * Makefile.am:
- * icons/debug-overlay-24.png:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml: Fix icon composition
- warning.
-
-2010-06-10 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DisassemblyView.cs: Track API changes.
-
-2010-05-28 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Fix incorrect use
- of ShowCustomDialog/RunCustomDialog.
-
-2010-05-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Use
- ShowCustomDialog (which destroys the dialog when done)
- instead of RunCustomDialog (which doesn't).
-
-2010-05-25 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebugCommands.cs: More dialog placement
- cleanup.
-
-2010-05-22 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: More dialog
- placing.
-
-2010-05-21 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebugCommands.cs: Clean up dialog
- placement.
-
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Flush.
-
-2010-05-20 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show the
- exception information when double clicking on it in the
- locals or watch pads.
-
- * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: Don't crash
- if there is a change event after the dialog is closed.
-
-2010-05-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ExceptionCaughtDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs:
- Improved exception dialog. It now shows the stack trace.
- Track api changes.
-
-2010-05-11 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2010-05-10 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Unsubscribe all
- events from the session when stopping the debugger. Ensures
- that the old session is completely disconnected from the
- debugging service, so if something goes wrong while shutting
- down, it will not interfere with a new session. This might
- be a fix for bug #602476.
-
-2010-05-10 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/BusyEvaluatorDialog.cs: Dont re-show
- the busy dialog if the user clicks on Keep Waiting. Instead,
- show it when the user tries to continue debugging. Also show
- a flashing status icon while in busy mode.
-
-2010-05-10 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Remove unused icon sizes.
-
-2010-05-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Really fix not
- supported expression error reporting.
-
-2010-05-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Improve error message
- when an expression is not supported.
-
-2010-05-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValuePad.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger.Visualizer/TextVisualizer.cs:
- * MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs: Track
- api changes. When evaluation options change, update the
- value pads.
-
-2010-05-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * MonoDevelop.Debugger/ExceptionCaughtDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs:
- Exception dialog fixes. Wrap the exception message. Don't
- show new lines in the value column.
-
-2010-05-03 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.csproj: Flush.
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Properly update
- expanders visibility when refreshing a row.
-
-2010-04-29 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DisassemblyView.cs: ViewContent widgets
- are now destroyed by the workspace window.
-
-2010-04-28 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2010-04-27 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Make
- IProcessAsyncOperation IDisposable.
-
-2010-04-23 Carlo Kok <ck@remobjects.com>
-
- * MakeFile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ExpressionEvaluatorExtensionNode.cs:
- * MonoDevelop.Debugger/LocalsPad.cs:
- Allow for custom debug expression evaluator plugins.
-
-2010-04-23 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Improved column
- size handling.
-
- * gtk-gui/gui.stetic:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- Changed default size for evaluator dialog.
-
-2010-04-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Reduce size of
- refresh and visualizer buttons. Moved refresh button to the
- front of the column.
-
- * MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs: Allow
- expanding.
-
-2010-04-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger.Visualizer:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * MonoDevelop.Debugger.Visualizer/TextVisualizer.cs:
- * MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs:
- * MonoDevelop.Debugger.Visualizer/IValueVisualizer.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs:
- * MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.Viewers.ValueVisualizerDialog.cs:
- Add basic support for custom visualizers.
-
- * MonoDevelop.Debugger/PinnedWatch.cs: Set the correct
- expression name.
-
-2010-04-14 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: Added
- new test suite for StackFrame. Reorganized a bit the
- namespaces. Added tests for bug #580994.
-
-2010-04-14 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: When
- checking if some breakpoint features are supported, check it
- for the startup project too, since the current project may
- be a library and not executable.
-
-2010-04-13 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/BreakpointPad.cs: Use the delete key
- command to bind the delete key.
-
-2010-04-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/WatchPad.cs:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Added a context
- menu to ObjectValueTreeView, which includes a command which
- allows adding a value to the watch pad.
-
-2010-04-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Don't set
- change the pin icon while editing.
-
-2010-04-06 Michael Hutchinson <mhutchinson@novell.com>
-
- * gtk-gui/gui.stetic:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Remove dead space at bottom of dialog.
-
-2010-03-24 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Flush.
-
- * MonoDevelop.Debugger/StackTracePad.cs: Alloy copying the
- call stack to the clipboard. Added context menu.
-
-2010-03-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugCommands.cs: Fixed some command
- descriptions.
-
-2010-03-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * AssemblyInfo.cs:
- * MonoDevelop.Debugger.addin.xml: Bumped MD version.
-
-2010-03-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Set the default location for
- debug pads. Register a new Debug layout.
-
-2010-03-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/WatchPad.cs:
- * MonoDevelop.Debugger/LocalsPad.cs:
- * MonoDevelop.Debugger/Extensions.cs:
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/ImmediatePad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/BreakpointPad.cs:
- * MonoDevelop.Debugger/ObjectValuePad.cs:
- * MonoDevelop.Debugger/ExceptionsDialog.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Merged MD.Projects into MD.Core, and MD.Projects.Gui,
- MD.Core.Gui and MD.Components into MD.Ide.
-
-2010-03-09 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Show the clear button
- in the dock item toolbar.
-
-2010-03-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs: Icons are set in the
- extension node.
-
- * MonoDevelop.Debugger/BreakpointPad.cs: Remove unrequired
- shadow.
-
-2010-03-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/BreakpointPad.cs: Use the new
- DockItemToolbar class for showing toolbar commands.
-
-2010-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am: Added target for running the tests.
-
-2010-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Clean the
- breakpoint list when closing the solution.
-
-2010-02-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ExceptionsDialog.cs: Fix bug #579754 -
- Duplicate exception names in debugger exception dialog
-
-2010-02-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ExceptionCaughtDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs: Added
- new dialog which is shown when an exception is caught.
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Use new expression
- validation method.
-
-2010-02-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/BreakpointPad.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api
- changes.
-
-2010-02-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggerEngine.cs: Properly initialize
- the engine.
-
-2010-02-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/Extensions.cs:
- * MonoDevelop.Debugger/DebuggerEngine.cs:
- * MonoDevelop.Debugger/IDebuggerEngine.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebugExecutionModeSet.cs:
- * MonoDevelop.Debugger/AttachToProcessDialog.cs:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * MonoDevelop.Debugger/DebuggerEngineExtensionNode.cs:
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Added
- support for lazy loading of add-ins
-
-2010-02-09 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/BreakpointPad.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes for lazy loading images.
-
-2010-02-08 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ExceptionsDialog.cs: Include
- System.Exception in exceptions list.
-
-2010-02-04 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: init pinned
- watch coordinates to -1.
-
-2010-02-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/PinnedWatch.cs:
- * MonoDevelop.Debugger/PinnedWatchStore.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- Implemented infrastructure for supporting persistent pinned
- watches.
-
-2010-02-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebugCommands.cs: Warn the user when
- trying to debug an outdated exe. Fixes bug #540979.
-
-2010-01-27 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2010-01-26 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Made GetIcon
- public.
-
-2010-01-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/generated.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BusyEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AddTracePointDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- Flush.
-
-2010-01-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Implement a type
- resolver. Helps fixing bug #570855 - Poor type resolution in
- debugger.
-
-2010-01-21 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2009-12-15 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.Tests:
- * MonoDevelop.Debugger.Tests.TestApp: Added new testing
- projects.
-
- * MonoDevelop.Debugger/DebuggingService.cs: Allow using the
- debugging service when the Ide is not initialized.
-
-2009-12-14 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Ensure that soft
- debugger is prioritised over newly installed debuggers.
-
-2009-12-11 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * icons/view-debug-watch-16.png:
- * icons/view-debug-locals-16.png:
- * MonoDevelop.Debugger.addin.xml:
- * icons/view-debug-threads-16.png:
- * icons/view-debug-call-stack-16.png:
- * icons/view-debug-breakpoints-16.png: Added some new icons.
-
-2009-12-11 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the new
- DisplayValue property.
-
-2009-12-09 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Pass along the
- external console option.
-
-2009-12-07 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Use
- Workbench.Present so that we can special-case for different
- platforms.
-
-2009-12-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- Added new grouping options to the options panel.
-
- * MonoDevelop.Debugger/DebuggingService.cs: Moved all options
- properties to a single object.
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show the new
- static member icons.
-
-2009-12-01 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Fix shortcut conflict.
-
- * gtk-gui/gui.stetic:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- Evaluate expression when pressing enter in the expression
- evaluator dialog.
-
-2009-11-25 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Remove FIXME that
- was fixed.
-
-2009-11-25 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/StackTracePad.cs: Don't prevent the
- user from jumping to frames if source exists, even if
- they're not user code.
-
-2009-11-25 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/Initializer.cs: Take external code
- into account when picking frame to show when stopping.
-
-2009-11-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebugTextMarker.cs: New marker for
- tracepoints.
-
-2009-11-24 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/StackTracePad.cs: Don't jump to
- external frames.
-
-2009-11-24 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/StackTracePad.cs: Make frames that are
- external code italic.
-
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/DebuggingService.cs: Only display the
- current visible frame, not external code frames.
-
-2009-11-24 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/AddTracePointDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AddTracePointDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Implemented Add Tracepoint command.
-
-2009-11-23 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Add a call for
- accessing the next "visible" stack frame.
-
- * MonoDevelop.Debugger/Initializer.cs: Track API.
-
- * MonoDevelop.Debugger/DebugTextMarker.cs: New marker.
-
-2009-11-20 Michael Hutchinson <mhutchinson@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- Add setting for user-code-only debugging.
-
-2009-11-20 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/IDebuggerEngine.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- Added options panel for setting debugger engine selection
- priority.
-
-2009-11-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Add support for
- the new EvaluatingGroup value type.
-
-2009-11-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Remove debug code.
-
-2009-11-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger/ImmediatePad.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- Add support for refreshing values. Added option for enabling
- ToString evaluation. Track api changes.
-
-2009-11-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: Added
- options panel for the debugger options.
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * gtk-gui/generated.cs:
- * MonoDevelop.Debugger.csproj:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BusyEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Updated.
-
- * MonoDevelop.Debugger/DebuggingService.cs: Use the options
- entered by the user for timeout and target evaluation. Show
- the busy dialog when the debugger is busy.
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the default
- timeout when evaluating expressions.
-
- * MonoDevelop.Debugger/BusyEvaluatorDialog.cs: New dialog
- shown when the debugger is busy executing target methods.
-
-2009-11-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Fix bug #549886 -
- Pressing Enter at the end of a line with a breakpoint moves
- the breakpoint down a line.
-
-2009-10-30 Lluis Sanchez Gual <lluis@novell.com>
-
- * AssemblyInfo.cs:
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2009-10-29 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj: Reference the mono-cairo
- package.
-
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/DebuggingService.cs: Properly check
- debugger features while in a debug session.
-
- * MonoDevelop.Debugger/ThreadsPad.cs: Improve error handling.
-
-2009-10-29 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/generated.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Flush.
-
-2009-10-27 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Fixed 'Bug 550179
- - Caret should not pulse when debugger stepping'.
-
-2009-10-19 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Add Mac shortcuts.
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj: Flush.
-
-2009-10-18 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs: Fix Pocess/Process
- spelling.
-
-2009-10-16 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/IDebuggerEngine.cs:
- * MonoDevelop.Debugger/AttachToProcessDialog.cs: Fix spelling
- of GetAttachableProcesses API.
-
-2009-10-14 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Added new event to
- disable conditional compilation for a document.
-
-2009-10-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * AssemblyInfo.cs:
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2009-10-05 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/AttachToProcessDialog.cs: Track api
- changes.
-
-2009-10-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Avoid deadlock by
- delaying the display of error dialogs.
-
-2009-09-29 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/Initializer.cs: Don't show the
- disassembly window if not supported.
-
-2009-09-29 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/DebuggingService.cs: Implemented Show
- Current Execution Line command.
-
-2009-09-23 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Added null check.
-
-2009-09-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Report debugger
- exceptions in a dialog.
-
- * MonoDevelop.Debugger/BreakpointPad.cs: Disable the
- breakpoints pad if the breakpoint store is read-only while
- running.
-
- * MonoDevelop.Debugger/DebugCommands.cs: Disable breakpoint
- commands when the breakpoint store is read-only.
-
-2009-09-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger\DebuggingService.cs: Fire the stopped
- event after disposing the session.
-
-2009-09-14 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Added a toolbar with a
- clean button.
-
-2009-09-12 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2009-09-09 Christian Hergert <chris@dronelabs.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebugCommands.cs: Make windows transient
- for the root monodevelop window.
-
-2009-09-08 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api
- changes.
-
-2009-08-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic: Update gtk# dependency.
-
-2009-08-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.csproj: Updated dependencies. We now
- depend on gtk# 2.12.8, Mono 2.4, and Mono.Addins 0.4.
-
-2009-08-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/BreakpointPad.cs: Fix issue with
- context menu. Fixes bug #480535.
-
-2009-08-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger\StackTracePad.cs: Improve stack frame
- formatting.
-
-2009-08-24 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2009-08-11 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Try some different Mac
- keyboard mappings for build and run commands.
-
-2009-08-10 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.csproj: Don't make local copies of
- project references.
-
-2009-07-31 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Flush.
-
-2009-07-31 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- Flush.
-
-2009-07-20 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebugCommands.cs: Run has now "Run
- again" functionality when no debugger is installed.
-
-2009-07-19 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API
- changes.
-
-2009-07-09 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api
- changes.
-
-2009-06-23 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ImmediatePad.cs: Use the new
- DesktopService instead of PlatformService.
-
-2009-06-12 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/ImmediatePad.cs: Added immediate pad.
-
-2009-05-29 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger\ThreadsPad.cs: Don't try to get the
- list of threads if the debugger is running.
-
- * MonoDevelop.Debugger\DebugCommands.cs: Fix logic for
- checking if debugging is supported.
-
-2009-05-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger\ThreadsPad.cs:
- * MonoDevelop.Debugger\StackTracePad.cs: Don't render a
- border. The dock item already provides one.
-
-2009-05-20 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger\Initializer.cs:
- * MonoDevelop.Debugger\DebuggingService.cs: Use FilePath for
- representing paths.
-
-2009-05-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/Extensions.cs:
- * MonoDevelop.Debugger/DebugCommands.cs: Workaround for what
- seems to be a mcs bug. Looks like it can't properly resolve
- the implicit conversion of null to string.
-
-2009-05-05 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: More Mac shortcuts.
-
-2009-04-27 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/IDebuggerEngine.cs: Moved
- IDebuggerEngine from Mono.Debugging.
-
- * MonoDevelop.Debugger/DebuggingService.cs: IDebuggerEngine
- now takes an ExecutionCommand as parameter.
-
-2009-04-20 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugExecutionModeSet.cs: Created an
- execution mode set for debuggers.
-
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Track
- api changes done in IExecutionHandler.
-
-2009-04-17 Mike Kestner <mkestner@novell.com>
-
- * MonoDevelop.Debugger.csproj: don't require specific
- gtk-sharp version.
-
-2009-04-17 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/WatchPad.cs: Changed IMementoCapable
- interface.
-
-2009-04-15 Lluis Sanchez Gual <lluis@novell.com>
-
- * AssemblyInfo.cs:
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2009-04-15 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ExceptionsDialog.cs: Track api changes
- to support multiple target runtimes.
-
-2009-04-10 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api
- changes (Made the 'undo' of code completion operations more
- intelligent.)
-
-2009-03-21 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/DisassemblyView.cs:
- * MonoDevelop.Debugger/DebugTextMarker.cs: Fixed compilation
- error.
-
-2009-03-16 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api
- changes.
-
-2009-03-13 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.csproj: Don't local-copy project refs.
-
-2009-03-13 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger.csproj: Moved text editor to core
-
-2009-03-05 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Fix bug #478331
- - Adding second (third, etc) variable to watch pad takes
- type of first variable.
-
-2009-03-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: Removed unused
- CanDebugPlatform and rename CanDebugFile to CanDebugCommand.
-
-2009-03-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/Extensions.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs:
- Changed the way execution handlers work. We are not using
- platform ids anymore. Instead, we use command strings when
- looking for execution handlers. IExecutionHandlerFactory has
- been removed and now everything is handled by
- IExecutionHandler, which has a new CanExecute method. This
- model is more simple and more generic.
-
-2009-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs:
- Moved breakpoint properties dialog from MD.Ide. Disable
- conditional and tracepoint options if they are not supported
- by the project.
-
-2009-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/Extensions.cs: Fixed NRE when the
- current view does not have a file name. Fixes bug #480823 -
- NRE when closing solution.
-
-2009-03-02 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: commented out
- debug message.
-
-2009-02-27 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs: Added translatable
- strings. Patch from Bálint Kriván.
-
-2009-02-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.csproj: Flush.
-
-2009-02-23 Scott Ellington <scott.ellington@gmail.com>
-
- * Makefile.am:
- * icons/step-out-24.png:
- * icons/step-into-24.png:
- * icons/step-over-24.png:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml: add 24 px icons and debug
- toolbar
-
-2009-02-23 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Track merge of the project
- pad context menu.
-
-2009-02-20 Scott Ellington <scott.ellington@gmail.com>
-
- * Makefile.am:
- * icons/step-out-22.png:
- * icons/step-out-16.png:
- * icons/step-over-22.png:
- * icons/step-over-16.png:
- * icons/step-into-16.png:
- * icons/step-into-22.png:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml: add step icons
-
-2009-02-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/WatchPad.cs: When restoring the watch
- pad state, clear the old state.
-
-2009-02-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ExceptionsDialog.cs: Track api changes.
-
-2009-02-13 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/LocalsPad.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Add locals all
- at once to the list.
-
- * MonoDevelop.Debugger/DebugCommands.cs: Allow editing the
- exceptions even when the debugger is not running.
-
-2009-02-12 Lluis Sanchez Gual <lluis@novell.com>
-
- * icons:
- * Makefile.am:
- * icons/debug-overlay-32.png:
- * icons/debug-overlay-22.png:
- * icons/debug-overlay-16.png:
- * MonoDevelop.Debugger.csproj:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugCommands.cs: Added icon for debug
- command. Make sure the run command is visible in the toolbar
- even when there are no debuggers installed.
-
-2009-02-11 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/BreakpointPad.cs:
- * MonoDevelop.Debugger/ObjectValuePad.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use pad font.
-
-2009-02-07 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.csproj: Don't require a specific
- version of Mono.Addins.
-
-2009-02-07 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.csproj: Flush MD's removal of newline
- at end of file that was introduced by manually editing with
- gedit.
-
-2009-02-07 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.csproj: Make debug configuration build
- debug symbols.
-
-2009-02-06 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.mdp:
- * MonoDevelop.Debugger.csproj: Migrated to MSBuild file
- format.
-
-2009-02-05 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DisassemblyView.cs: track api changes.
-
-2009-02-03 Lluis Sanchez Gual <lluis@novell.com>
-
- * AssemblyInfo.cs:
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2009-02-03 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/generated.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs:
- Flush.
-
- * Makefile.am:
- * MonoDevelop.Debugger.mdp: Updated Mono.Cairo reference.
-
-2009-02-01 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/DisassemblyView.cs: Track
- TextEditorOptions API changes.
-
-2009-02-01 Michael Hutchinson <mhutchinson@novell.com>
-
- * Makefile.am: Track changes in MD's assembly handling.
- Mono.Cairo is no longer considered to be a "system"
- assembly.
-
-2009-01-26 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger.mdp: Flush project format changes.
-
-2008-12-19 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the new async
- evaluation feature.
-
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/ObjectValuePad.cs: Make sure the pad is updated
- only when it is visible.
-
-2008-12-12 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.mdp: All projects now require fx 3.5.
-
-2008-12-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: When cleaning up the
- session, dispose it as last step, since it may be slow, and it might
- delay all other cleanup operations.
-
-2008-12-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebuggingService.cs: If something goes wrong when
- starting the debugger, cleanup the session.
-
-2008-12-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/AttachToProcessDialog.cs: Hide debugger commands
- which are not supported by the installed debuggers.
-
-2008-12-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Updated key bindings to match VS.
-
-2008-12-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Changed default label of debug command
- for projects since to avoid it being confused with the global debug
- command in the key bindings panel.
-
- * MonoDevelop.Debugger/Extensions.cs: Honor the RunWithWarning and
- BuildBeforeExecuting preferences.
-
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Track api
- changes.
-
- * MonoDevelop.Debugger/DebugCommands.cs: Honor the RunWithWarning and
- BuildBeforeExecuting preferences. If no debugger is installed, the
- Debug command will work as a regular Run command.
-
-2008-12-02 Michael Hutchinson <mhutchinson@novell.com>
-
- * AssemblyInfo.cs: Add AssemblyInfo.cs files that are autogenerated from
- the addin manifests.
-
-2008-12-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Allow editing by pressing
- F2.
-
-2008-12-01 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Fix command names.
-
-2008-11-26 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * gtk-gui/generated.cs:
- * MonoDevelop.Debugger.mdp:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/ExceptionsDialog.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: Implemented
- exceptions dialog and expression evaluation dialog.
-
-2008-11-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * Makefile.am:
- * gtk-gui/gui.stetic:
- * MonoDevelop.Debugger.mdp:
- * MonoDevelop.Debugger.addin.xml:
- * MonoDevelop.Debugger/LocalsPad.cs:
- * MonoDevelop.Debugger/Extensions.cs:
- * MonoDevelop.Debugger/ThreadsPad.cs:
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/StackTracePad.cs:
- * MonoDevelop.Debugger/DebugCommands.cs:
- * MonoDevelop.Debugger/BreakpointPad.cs:
- * MonoDevelop.Debugger/ObjectValuePad.cs:
- * MonoDevelop.Debugger/DisassemblyView.cs:
- * MonoDevelop.Debugger/ExceptionsDialog.cs:
- * MonoDevelop.Debugger/DebuggingService.cs:
- * MonoDevelop.Debugger/ObjectValueTreeView.cs:
- * MonoDevelop.Debugger/AttachToProcessDialog.cs:
- * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs:
- * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs:
- * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: Moved here all
- debug commands previously implemented in MD.Ide.
-
-2008-11-21 Michael Hutchinson <mhutchinson@novell.com>
-
- * Makefile.am:
- * MonoDevelop.Debugger.mdp: Updated.
-
-2008-11-21 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/Initializer.cs:
- * MonoDevelop.Debugger/DisasemblyView.cs:
- * MonoDevelop.Debugger/DisassemblyView.cs: Fix spelling.
-
-2008-11-18 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebugTextMarker.cs: fixed compilation error.
-
-2008-11-06 Michael Hutchinson <mhutchinson@novell.com>
-
- * Makefile.am: Fix build dependencies.
-
-2008-11-05 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2008-10-09 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track APIs.
-
-2008-10-09 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track CompletionData API.
-
-2008-10-08 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Remove ambiguity.
-
-2008-10-07 Michael Hutchinson <mhutchinson@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API.
-
-2008-09-29 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: implemented IComparable.
-
-2008-09-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Really fix.
-
-2008-09-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api changes.
-
-2008-09-18 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValuePad.cs: Fix nullref.
-
-2008-09-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.mdp: Updated projects.
-
-2008-09-12 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/generated.cs: Updated generated code.
-
-2008-08-20 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DisasemblyView.cs: made some changes caused by
- text editor changes.
-
-2008-08-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs,
- gtk-gui/gui.stetic, MonoDevelop.Debugger.mdp, Makefile.am,
- MonoDevelop.Debugger/BreakpointPropertiesDialog.cs,
- MonoDevelop.Debugger/BreakpointPad.cs: Moved breakpoint properties
- dialog to MD.Ide.
- * MonoDevelop.Debugger/DebugTextMarker.cs: Track api changes.
-
-2008-08-06 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk-gui, gtk-gui/generated.cs,
- gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs,
- gtk-gui/gui.stetic, MonoDevelop.Debugger.mdp, Makefile.am,
- MonoDevelop.Debugger/BreakpointPropertiesDialog.cs,
- MonoDevelop.Debugger/BreakpointPad.cs: Improved breakpoints pad.
- Implemented the breakpoint properties dialog.
-
-2008-08-05 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp,
- Makefile.am, MonoDevelop.Debugger/ThreadsPad.cs: Added threads pad.
- Based on the work by Alfonso Santos Luaces.
- * MonoDevelop.Debugger/BreakpointPad.cs: Properly unsubscribe debug
- service events.
-
-2008-08-05 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DisasemblyView.cs: Track api changes.
-
-2008-07-31 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValuePad.cs: Remove debug code.
-
-2008-07-29 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger.mdp: Removed some parts of the documentation
- service.
-
-2008-07-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp,
- Makefile.am, MonoDevelop.Debugger/WatchPad.cs,
- MonoDevelop.Debugger/LocalsPad.cs,
- MonoDevelop.Debugger/BreakpointPad.cs,
- MonoDevelop.Debugger/ObjectValuePad.cs: Implemented LocalsPad.
- Moved all logic shared with the WatchPad to ObjectValuePad.
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Highlight values that
- have changed since the last time the debugger was stopped.
-
-2008-07-25 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp,
- Makefile.am, MonoDevelop.Debugger/BreakpointPad.cs: Initial
- implementation of the breakpoints pad by Alfonso Santos Luaces.
-
-2008-07-22 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/WatchPad.cs: Make sure the value tree is
- properly initialized the first time it is shown.
-
-2008-07-21 Michael Hutchinson <mhutchinson@novell.com>
-
- * Makefile.am, MonoDevelop.Debugger.mdp: Fix automake build paths. Add
- System.Xml reference and don't local copy refs, for build within
- MD.
-
-2008-07-21 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Remove ellupsizing.
- Doesn't work well with the debug tooltip.
-
-2008-07-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs,
- MonoDevelop.Debugger/WatchPad.cs: Store watch pad expressions into
- the user preferences when closing a solution.
-
-2008-07-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Make columns resizable.
-
-2008-07-09 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show icons for Type and
- Namespace values.
-
-2008-07-09 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.mdp, Makefile.am,
- MonoDevelop.Debugger/WatchPad.cs,
- MonoDevelop.Debugger/ObjectValueTreeView.cs: Added support for code
- completion.
-
-2008-07-08 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/WatchPad.cs: Don't update the tree if there is
- no current frame, since it will reset the current expansion state.
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Added events which are
- fired when value editing starts/ends. Fixes some text escaping
- issues.
-
-2008-07-07 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/WatchPad.cs,
- MonoDevelop.Debugger/ObjectValueTreeView.cs: Show member icons in
- the watch pad. Support a new compact mode to be used in the debug
- tooltips.
-
-2008-07-04 Mike Krüger <mkrueger@novell.com>
-
- * MonoDevelop.Debugger/DebugTextMarker.cs,
- MonoDevelop.Debugger/DisasemblyView.cs: debug markers are now using
- color styles instead of hard coded colors.
-
-2008-07-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger/DebugTextMarker.cs: Improved colors.
- * MonoDevelop.Debugger/ObjectValueTreeView.cs: Allow editing variable
- values.
- * MonoDevelop.Debugger/Initializer.cs: Implement ShowDisassembly
- command.
- * MonoDevelop.Debugger/DisasemblyView.cs: Implemented support for mixed
- assembler/source code view.
-
-2008-07-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Fix add-in id.
-
-2008-07-01 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.mdp, Makefile.am,
- MonoDevelop.Debugger/DebugTextMarker.cs: Implemented markers for
- breakpoint and current execution line.
- * MonoDevelop.Debugger/DisasemblyView.cs: Use new current line marker.
-
-2008-06-20 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp,
- Makefile.am, MonoDevelop.Debugger/WatchPad.cs,
- MonoDevelop.Debugger/ObjectValueTreeView.cs,
- MonoDevelop.Debugger/Initializer.cs,
- MonoDevelop.Debugger/DisasemblyView.cs,
- MonoDevelop.Debugger/StackTracePad.cs: Improved call stack view.
- Implemented disassemble view.
-
-2008-06-04 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml: Bump MD version.
-
-2008-05-15 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp,
- Makefile.am, MonoDevelop.Debugger/WatchPad.cs,
- MonoDevelop.Debugger/ObjectValueTreeView.cs,
- MonoDevelop.Debugger/StackTracePad.cs: Implemented initial watch
- pad.
-
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
index 604979ad5e..00fa8d0e8b 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
@@ -27,6 +27,7 @@ using System;
using MonoDevelop.Components;
using Mono.Debugging.Client;
using Gtk;
+using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.Debugger.PreviewVisualizers
{
@@ -42,23 +43,16 @@ namespace MonoDevelop.Debugger.PreviewVisualizers
public override Control GetVisualizerWidget (ObjectValue val)
{
string value = val.Value;
- Gdk.Color col = new Gdk.Color (85, 85, 85);
+ Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor ();
if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]"))
value = '"' + GetString (val) + '"';
if (DebuggingService.HasInlineVisualizer (val))
value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val);
- var label = new Gtk.Label (value);
- var font = label.Style.FontDescription.Copy ();
-
- if (font.SizeIsAbsolute) {
- font.AbsoluteSize = font.Size - 1;
- } else {
- font.Size -= (int)(Pango.Scale.PangoScale);
- }
-
- label.ModifyFont (font);
+ var label = new Gtk.Label ();
+ label.Text = value;
+ label.ModifyFont (FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11));
label.ModifyFg (StateType.Normal, col);
label.SetPadding (4, 4);
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs
index a3bd79b733..5a2bb447e7 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs
@@ -31,6 +31,7 @@ using Gdk;
using Gtk;
using MonoDevelop.Ide;
using MonoDevelop.Debugger.PreviewVisualizers;
+using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.Debugger
{
@@ -44,7 +45,7 @@ namespace MonoDevelop.Debugger
this.Modal = true;
TransientFor = (Gtk.Window) invokingWidget.Toplevel;
- Theme.SetFlatColor (new Cairo.Color (245 / 256.0, 245 / 256.0, 245 / 256.0));
+ Theme.SetBackgroundColor (Styles.PreviewVisualizerBackgroundColor.ToCairoColor ());
Theme.Padding = 3;
ShowArrow = true;
var mainBox = new VBox ();
@@ -64,8 +65,8 @@ namespace MonoDevelop.Debugger
headerTable.Attach (hb, 0, 1, 0, 1);
var headerTitle = new Label ();
- headerTitle.ModifyFg (StateType.Normal, new Color (36, 36, 36));
- var font = headerTitle.Style.FontDescription.Copy ();
+ headerTitle.ModifyFg (StateType.Normal, Styles.PreviewVisualizerHeaderTextColor.ToGdkColor ());
+ var font = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale12);
font.Weight = Pango.Weight.Bold;
headerTitle.ModifyFont (font);
headerTitle.Text = val.TypeName;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog
deleted file mode 100644
index a7cef8394d..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog
+++ /dev/null
@@ -1,19 +0,0 @@
-2010-04-14 Lluis Sanchez Gual <lluis@novell.com>
-
- * Main.cs: Added new test suite for StackFrame. Reorganized a
- bit the namespaces. Added tests for bug #580994.
-
-2010-04-13 Lluis Sanchez Gual <lluis@novell.com>
-
- * Main.cs: Add unit test for bug 595270: Flags enums in
- debugger show the zero value.
-
-2010-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * Main.cs: Added boxing tests. Disable assignment tests for
- MDB only, they now work with SDB.
-
-2010-02-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.Tests.TestApp.csproj: Flush.
-
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
index 13b590023a..d227d6dc48 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs
@@ -34,19 +34,56 @@ using System.Threading.Tasks;
namespace MonoDevelop.Debugger.Tests.TestApp
{
+ interface IFoo
+ {
+ int this[int index] { get; }
+ int Prop { get; }
+ }
+ interface IBar
+ {
+ int this[int index] { get; }
+ int Prop { get; }
+ }
+ class Bo
+ {
+ public int Prop { get { return 4; } }
+ }
+ class FooBar : Bo, IFoo, IBar
+ {
+ int IBar.Prop { get { return 1; } }
+ int IFoo.Prop { get { return 2; } }
+ public int Prop { get { return 3; } }
+
+ int IFoo.this[int index]
+ {
+ get
+ {
+ return index;
+ }
+ }
+
+ int IBar.this[int index]
+ {
+ get
+ {
+ return -index;
+ }
+ }
+ }
+
class TestEvaluationParent
{
public int TestMethodBase ()
{
float c = 4;
- return 1;
+ return 2;
}
protected string ProtectedStringProperty{ get; set; }
public virtual int TestMethodBase (string a)
{
- return int.Parse (a) + 1;
+ return int.Parse (a) + 2;
}
protected int TestMethodBase (int a)
@@ -188,11 +225,19 @@ namespace MonoDevelop.Debugger.Tests.TestApp
}
}
+ FooBar = new FooBar ();
+ Foo = new FooBar ();
+ Bar = new FooBar ();
+
var testEvaluationChild = new TestEvaluationChild ();
Console.WriteLine (n); /*break*/
}
+ public FooBar FooBar { get; set; }
+ public IBar Bar { get; set; }
+ public IFoo Foo { get; set; }
+
public string TestCastingArgument (myNint nint)
{
return nint.v.ToString ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs
index f6140c6ce9..a1d16e178a 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs
@@ -444,6 +444,12 @@ namespace MonoDevelop.Debugger.Tests
[Test]
public void DebuggerStepperBoundaryMethod2ProjectAssembliesOnly ()
{
+ IgnoreSoftDebugger ("Fix me");
+ //SDB Ignore: DebuggerStepperBoundary is stupid and pretty much uselss attribute anyway
+ //Problem that we have here is that DebuggerStepperBoundary is handled on IDE side
+ //and if method that has DebuggerStepperBoundary also has DebuggerNonUserCode IDE
+ //is never notified about entering such method since runtime handles DebuggerNonUserCode
+ //hence bug
InitializeTest ();
Session.Options.ProjectAssembliesOnly = true;
AddBreakpoint ("f3a22b38-596a-4463-a562-20b342fdec12");
@@ -874,6 +880,7 @@ namespace MonoDevelop.Debugger.Tests
public void CatchPointTest2 ()
{
IgnoreSoftDebugger ("I'm having problem testing this because. There is error nonstop happening in framework about CurrentCulture featching.");
+ IgnoreCorDebugger ("Randomly fails");
InitializeTest ();
AddCatchpoint ("System.Exception", true);
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog
deleted file mode 100644
index 920c56f624..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog
+++ /dev/null
@@ -1,44 +0,0 @@
-2010-04-14 Lluis Sanchez Gual <lluis@novell.com>
-
- * StackFrameTests.cs:
- * MdbStackFrameTests.cs:
- * SdbEvaluationTests.cs:
- * SdbStackFrameTests.cs:
- * MdbEvaluationTests.cs:
- * MonoDevelop.Debugger.Tests.csproj: Added new test suite for
- StackFrame. Reorganized a bit the namespaces. Added tests
- for bug #580994.
-
-2010-04-06 Lluis Sanchez Gual <lluis@novell.com>
-
- * EvaluationTests.cs: Make some tests work on windows.
-
-2010-03-17 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.Tests.csproj: Merged MD.Projects into
- MD.Core, and MD.Projects.Gui, MD.Core.Gui and MD.Components
- into MD.Ide.
-
-2010-03-03 Lluis Sanchez Gual <lluis@novell.com>
-
- * EvaluationTests.cs:
- * MdbEvaluationTests.cs: Fix tests. Formatting rules have
- changed.
-
-2010-03-02 Lluis Sanchez Gual <lluis@novell.com>
-
- * DebugTests.cs:
- * EvaluationTests.cs:
- * MdbEvaluationTests.cs: Added boxing tests. Disable
- assignment tests for MDB only, they now work with SDB.
-
-2010-02-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.Tests.csproj: Flush.
-
- * DebugTests.cs: Added support for lazy loading of add-ins
-
-2009-12-16 Lluis Sanchez Gual <lluis@novell.com>
-
- * MonoDevelop.Debugger.Tests.csproj: Add missing file.
-
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
index 6b2e752541..fafb2b96c6 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs
@@ -139,7 +139,7 @@ namespace MonoDevelop.Debugger.Tests
return;
}
- Console.WriteLine ("Target Runtime: " + runtime.DisplayRuntimeName + " " + runtime.Version);
+ Console.WriteLine ("Target Runtime: " + runtime.DisplayRuntimeName + " " + runtime.Version + " " + (IntPtr.Size == 8 ? "64bit" : "32bit"));
// main/build/tests
FilePath path = Path.GetDirectoryName (GetType ().Assembly.Location);
@@ -204,9 +204,16 @@ namespace MonoDevelop.Debugger.Tests
};
Session.TargetStopped += (sender, e) => {
- Frame = e.Backtrace.GetFrame (0);
- lastStoppedPosition = Frame.SourceLocation;
- targetStoppedEvent.Set ();
+ //This can be null in case of ForcedStop
+ //which is called when exception is thrown
+ //when Continue & Stepping is executed
+ if (e.Backtrace != null) {
+ Frame = e.Backtrace.GetFrame (0);
+ lastStoppedPosition = Frame.SourceLocation;
+ targetStoppedEvent.Set ();
+ } else {
+ Console.WriteLine ("e.Backtrace is null");
+ }
};
var targetExited = new ManualResetEvent (false);
@@ -215,6 +222,10 @@ namespace MonoDevelop.Debugger.Tests
};
Session.Run (dsi, ops);
+ Session.ExceptionHandler = (ex) => {
+ Console.WriteLine ("Session.ExceptionHandler:" + Environment.NewLine + ex.ToString ());
+ return true;
+ };
switch (WaitHandle.WaitAny (new WaitHandle[]{ done, targetExited }, 30000)) {
case 0:
//Breakpoint is hit good... run tests now
@@ -295,7 +306,7 @@ namespace MonoDevelop.Debugger.Tests
public bool CheckPosition (string guid, int offset = 0, string statement = null, bool silent = false)
{
- if (!targetStoppedEvent.WaitOne (3000)) {
+ if (!targetStoppedEvent.WaitOne (6000)) {
if (!silent)
Assert.Fail ("CheckPosition failure: Target stop timeout");
return false;
@@ -427,7 +438,7 @@ namespace MonoDevelop.Debugger.Tests
lock (locker) {
while (val.IsEvaluating) {
- if (!Monitor.Wait (locker, 4000))
+ if (!Monitor.Wait (locker, 8000))
throw new Exception ("Timeout while waiting for value evaluation");
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
index 4f06ceae1d..5451a66b67 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs
@@ -78,6 +78,12 @@ namespace MonoDevelop.Debugger.Tests
return "MonoDevelop";
case "SomeEnum":
return "SomeEnum";
+ case "IFoo":
+ return "MonoDevelop.Debugger.Tests.TestApp.IFoo";
+ case "IBar":
+ return "MonoDevelop.Debugger.Tests.TestApp.IBar";
+ case "Bo":
+ return "MonoDevelop.Debugger.Tests.TestApp.Bo";
}
return null;
}
@@ -488,23 +494,34 @@ namespace MonoDevelop.Debugger.Tests
val = val.Sync ();
}
Assert.AreEqual ("\"AbstractImplementation\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
+
+ IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces");
+
+ val = Eval ("((IInterfaceWithMethodA)objWithMethodA).MethodA()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("\"InterfaceImplementation\"", val.Value);
Assert.AreEqual ("string", val.TypeName);
- // FIXME: failing on CorDebugger
- if (Session is SoftDebuggerSession) {
- val = Eval ("true.ToString()");
- if (!AllowTargetInvokes) {
- var options = Session.Options.EvaluationOptions.Clone ();
- options.AllowTargetInvoke = true;
-
- Assert.IsTrue (val.IsNotSupported);
- val.Refresh (options);
- val = val.Sync ();
- }
+ val = Eval ("true.ToString()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
- Assert.AreEqual ("\"True\"", val.Value);
- Assert.AreEqual ("string", val.TypeName);
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
}
+
+ Assert.AreEqual ("\"True\"", val.Value);
+ Assert.AreEqual ("string", val.TypeName);
}
[Test]
@@ -596,15 +613,15 @@ namespace MonoDevelop.Debugger.Tests
ObjectValue val = Eval ("numbers[0]");
Assert.AreEqual ("\"one\"", val.Value);
Assert.AreEqual ("string", val.TypeName);
-
+
val = Eval ("numbers[1]");
Assert.AreEqual ("\"two\"", val.Value);
Assert.AreEqual ("string", val.TypeName);
-
+
val = Eval ("numbers[2]");
Assert.AreEqual ("\"three\"", val.Value);
Assert.AreEqual ("string", val.TypeName);
-
+
val = Eval ("staticString[2]");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -616,7 +633,7 @@ namespace MonoDevelop.Debugger.Tests
}
Assert.AreEqual ("'m'", val.Value);
Assert.AreEqual ("char", val.TypeName);
-
+
val = Eval ("alist[0]");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -628,7 +645,7 @@ namespace MonoDevelop.Debugger.Tests
}
Assert.AreEqual ("1", val.Value);
Assert.AreEqual ("int", val.TypeName);
-
+
val = Eval ("alist[1]");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -640,7 +657,7 @@ namespace MonoDevelop.Debugger.Tests
}
Assert.AreEqual ("\"two\"", val.Value);
Assert.AreEqual ("string", val.TypeName);
-
+
val = Eval ("alist[2]");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -652,6 +669,57 @@ namespace MonoDevelop.Debugger.Tests
}
Assert.AreEqual ("3", val.Value);
Assert.AreEqual ("int", val.TypeName);
+
+ IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces");
+
+ val = Eval ("FooBar[2]");
+ Assert.IsTrue (val.IsUnknown);
+ //We have IFoo and IBar implementation but without typecasting and determening which implementation user wants
+ //we have to return error/Unknown instead of random implementation(FooBar[2] is not compilable anyway)
+ val = Eval ("((IFoo)FooBar)[2]");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("2", val.Value);
+ val = Eval ("((IBar)FooBar)[2]");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("-2", val.Value);
+ val = Eval ("Bar[3]");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("-3", val.Value);
+ val = Eval ("Foo[3]");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("3", val.Value);
}
void CheckValue (string expected, string actual, bool isSimpleProperty)
@@ -874,7 +942,73 @@ namespace MonoDevelop.Debugger.Tests
val = val.Sync ();
}
Assert.AreEqual ("3", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces");
+
+ val = Eval ("Bar.Prop");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("1", val.Value);
+ val = Eval ("Foo.Prop");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("2", val.Value);
+ val = Eval ("FooBar.Prop");
Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("3", val.Value);
+ val = Eval ("((Bo)FooBar).Prop");
+ Assert.AreEqual ("int", val.TypeName);
+ Assert.AreEqual ("4", val.Value);
+ val = Eval ("FooBar");
+ richChildren = val.GetAllChildrenSync ();
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.FooBar)", richChildren [0].Name);
+ Assert.AreEqual ("int", richChildren [0].TypeName);
+ Assert.AreEqual ("3", richChildren [0].Value);
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.Bo)", richChildren [1].Name);
+ Assert.AreEqual ("int", richChildren [1].TypeName);
+ Assert.AreEqual ("4", richChildren [1].Value);
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (richChildren [2].IsNotSupported);
+ richChildren [2].Refresh (options);
+ richChildren [2] = richChildren [2].Sync ();
+ Assert.IsTrue (richChildren [3].IsNotSupported);
+ richChildren [3].Refresh (options);
+ richChildren [3] = richChildren [3].Sync ();
+ }
+ //TODO: Include interface names into sorting
+ if ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)" == richChildren [2].Name) {
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)", richChildren [2].Name);
+ Assert.AreEqual ("int", richChildren [2].TypeName);
+ Assert.AreEqual ("2", richChildren [2].Value);
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IBar)", richChildren [3].Name);
+ Assert.AreEqual ("int", richChildren [3].TypeName);
+ Assert.AreEqual ("1", richChildren [3].Value);
+ } else {
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)", richChildren [3].Name);
+ Assert.AreEqual ("int", richChildren [3].TypeName);
+ Assert.AreEqual ("2", richChildren [3].Value);
+ Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IBar)", richChildren [2].Name);
+ Assert.AreEqual ("int", richChildren [2].TypeName);
+ Assert.AreEqual ("1", richChildren [2].Value);
+ }
}
[Test]
@@ -1520,7 +1654,7 @@ namespace MonoDevelop.Debugger.Tests
public void FormatArray ()
{
ObjectValue val;
-
+
val = Eval ("numbers");
Assert.AreEqual ("{string[3]}", val.Value);
Assert.AreEqual ("string[]", val.TypeName);
@@ -1529,19 +1663,22 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("{int[2][]}", val.Value);
Assert.AreEqual ("int[][]", val.TypeName);
+ IgnoreCorDebugger ("Randomly fails");
+
+ val = Eval ("arrayWithLowerBounds");
+ Assert.AreEqual ("int[,,]", val.TypeName);
+ Assert.AreEqual ("{int[3,4,5]}", val.Value);
+
val = Eval ("numbersMulti");
Assert.AreEqual ("{int[3,4,5]}", val.Value);
Assert.AreEqual ("int[,,]", val.TypeName);
Assert.IsFalse (val.IsNull);
+ IgnoreSoftDebugger ("Randomly fails, tracked as Bug 36712");
val = Eval ("nulledByteArray");
Assert.AreEqual ("(null)", val.Value);
Assert.AreEqual ("byte[]", val.TypeName);
Assert.IsTrue (val.IsNull);
-
- val = Eval ("arrayWithLowerBounds");
- Assert.AreEqual ("int[,,]", val.TypeName);
- Assert.AreEqual ("{int[3,4,5]}", val.Value);
}
[Test]
@@ -1654,21 +1791,6 @@ namespace MonoDevelop.Debugger.Tests
{
ObjectValue val;
- //When fixed put into Inheriting test
- val = Eval ("b.TestMethod ()");
- Assert.AreEqual ("2", val.Value);
- Assert.AreEqual ("int", val.TypeName);
-
- //When fixed put into Inheriting test
- val = Eval ("b.TestMethod (42)");
- Assert.AreEqual ("44", val.Value);
- Assert.AreEqual ("int", val.TypeName);
-
- //When fixed put into Inheriting test
- val = Eval ("base.TestMethodBase ()");
- Assert.AreEqual ("2", val.Value);
- Assert.AreEqual ("int", val.TypeName);
-
val = Eval ("base.TestMethodBase (\"23\")");
Assert.AreEqual ("25", val.Value);
Assert.AreEqual ("int", val.TypeName);
@@ -1677,10 +1799,6 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("44", val.Value);
Assert.AreEqual ("int", val.TypeName);
- val = Eval ("base.TestMethodBaseNotOverrided ()");
- Assert.AreEqual ("1", val.Value);
- Assert.AreEqual ("int", val.TypeName);
-
//When fixed put into TypeReferenceGeneric
val = Eval ("Dictionary<string,NestedClass>");
Assert.AreEqual ("System.Collections.Generic.Dictionary<string,MonoDevelop.Debugger.Tests.TestApp.TestEvaluation.NestedClass>", val.Value);
@@ -1693,18 +1811,6 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("<type>", val.TypeName);
Assert.AreEqual (ObjectValueFlags.Type, val.Flags & ObjectValueFlags.OriginMask);
- //When fixed put into MethodInvoke(failing also on CorDebugger)
- val = Eval ("((IInterfaceWithMethodA)objWithMethodA).MethodA()");
- if (!AllowTargetInvokes) {
- var options = Session.Options.EvaluationOptions.Clone ();
- options.AllowTargetInvoke = true;
-
- Assert.IsTrue (val.IsNotSupported);
- val.Refresh (options);
- val = val.Sync ();
- }
- Assert.AreEqual ("\"InterfaceImplementation\"", val.Value);
- Assert.AreEqual ("string", val.TypeName);
}
[Test]
@@ -1855,6 +1961,9 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("43", val.Value);
Assert.AreEqual ("int", val.TypeName);
+ if (soft != null && soft.ProtocolVersion < new Version (2, 40))
+ Assert.Ignore ("A newer version of the Mono runtime is required.");
+
val = Eval ("b.Prop");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -1867,7 +1976,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("2", val.Value);
Assert.AreEqual ("int", val.TypeName);
- val = Eval ("b.PropNoVirt1");
+ val = Eval ("((B)b).PropNoVirt1");
if (!AllowTargetInvokes && soft == null) {
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;
@@ -1879,7 +1988,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("2", val.Value);
Assert.AreEqual ("int", val.TypeName);
- val = Eval ("b.PropNoVirt2");
+ val = Eval ("((B)b).PropNoVirt2");
if (!AllowTargetInvokes && soft == null) {
var options = Session.Options.EvaluationOptions.Clone ();
options.AllowTargetInvoke = true;
@@ -1891,7 +2000,7 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("2", val.Value);
Assert.AreEqual ("int", val.TypeName);
- val = Eval ("b.IntField");
+ val = Eval ("((B)b).IntField");
Assert.AreEqual ("2", val.Value);
Assert.AreEqual ("int", val.TypeName);
@@ -1991,9 +2100,6 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("1", val.Value);
Assert.AreEqual ("int", val.TypeName);
- if (soft != null && soft.ProtocolVersion < new Version (2, 40))
- Assert.Ignore ("A newer version of the Mono runtime is required.");
-
val = Eval ("b.TestMethod (\"23\")");
if (!AllowTargetInvokes) {
var options = Session.Options.EvaluationOptions.Clone ();
@@ -2006,25 +2112,102 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("25", val.Value);
Assert.AreEqual ("int", val.TypeName);
- if (Session is SoftDebuggerSession) {
- val = Eval ("System.Text.Encoding.UTF8.GetPreamble ()");
- if (!AllowTargetInvokes) {
- var options = Session.Options.EvaluationOptions.Clone ();
- options.AllowTargetInvoke = true;
-
- Assert.IsTrue (val.IsNotSupported);
- val.Refresh (options);
- val = val.Sync ();
- }
- Assert.AreEqual ("byte[]", val.TypeName);
- Assert.AreEqual ("{byte[3]}", val.Value);
- var bytes = ((RawValueArray)val.GetRawValue ()).ToArray ();
- Assert.AreEqual (239, bytes.GetValue (0));
- Assert.AreEqual (187, bytes.GetValue (1));
- Assert.AreEqual (191, bytes.GetValue (2));
- } else {
- Assert.Ignore ("Not working on CorDebugger");
+ val = Eval ("base.TestMethodBaseNotOverrided ()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("1", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval("base.TestMethodBase ()");
+ if (!AllowTargetInvokes)
+ {
+ var options = Session.Options.EvaluationOptions.Clone();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue(val.IsNotSupported);
+ val.Refresh(options);
+ val = val.Sync();
}
+ Assert.AreEqual("2", val.Value);
+ Assert.AreEqual("int", val.TypeName);
+
+ IgnoreCorDebugger("Not working on CorDebugger");
+
+ val = Eval("b.PropNoVirt2");
+ if (!AllowTargetInvokes)
+ {
+ var options = Session.Options.EvaluationOptions.Clone();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue(val.IsNotSupported);
+ val.Refresh(options);
+ val = val.Sync();
+ }
+ Assert.AreEqual("1", val.Value);
+ Assert.AreEqual("int", val.TypeName);
+
+ val = Eval("b.IntField");
+ Assert.AreEqual("1", val.Value);
+ Assert.AreEqual("int", val.TypeName);
+
+ val = Eval("b.PropNoVirt1");
+ if (!AllowTargetInvokes && soft == null)
+ {
+ var options = Session.Options.EvaluationOptions.Clone();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue(val.IsNotSupported);
+ val.Refresh(options);
+ val = val.Sync();
+ }
+ Assert.AreEqual("1", val.Value);
+ Assert.AreEqual("int", val.TypeName);
+
+ val = Eval ("System.Text.Encoding.UTF8.GetPreamble ()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("byte[]", val.TypeName);
+ Assert.AreEqual ("{byte[3]}", val.Value);
+ var bytes = ((RawValueArray)val.GetRawValue ()).ToArray ();
+ Assert.AreEqual (239, bytes.GetValue (0));
+ Assert.AreEqual (187, bytes.GetValue (1));
+ Assert.AreEqual (191, bytes.GetValue (2));
+
+ val = Eval ("b.TestMethod ()");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("1", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
+
+ val = Eval ("b.TestMethod (42)");
+ if (!AllowTargetInvokes) {
+ var options = Session.Options.EvaluationOptions.Clone ();
+ options.AllowTargetInvoke = true;
+
+ Assert.IsTrue (val.IsNotSupported);
+ val.Refresh (options);
+ val = val.Sync ();
+ }
+ Assert.AreEqual ("43", val.Value);
+ Assert.AreEqual ("int", val.TypeName);
}
[Test]
@@ -2060,14 +2243,11 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("\"b\"", children [1].Value);
} else {
// when AllowTargetInvokes is disabled, it also disables debugger proxies
- Assert.AreEqual (7, children.Length);
+ Assert.AreEqual (18, children.Length);
Assert.AreEqual ("Comparer", children [0].Name);
- Assert.AreEqual ("Count", children [1].Name);
- Assert.AreEqual ("Keys", children [2].Name);
- Assert.AreEqual ("Values", children [3].Name);
- Assert.AreEqual ("Static members", children [4].Name);
- Assert.AreEqual ("Non-public members", children [5].Name);
- Assert.AreEqual ("IEnumerator", children [6].Name);
+ Assert.AreEqual ("Static members", children [15].Name);
+ Assert.AreEqual ("Non-public members", children [16].Name);
+ Assert.AreEqual ("IEnumerator", children [17].Name);
}
val = Eval ("stringList");
@@ -2085,12 +2265,11 @@ namespace MonoDevelop.Debugger.Tests
Assert.AreEqual ("\"ccc\"", children [2].Value);
} else {
// when AllowTargetInvokes is disabled, it also disables debugger proxies
- Assert.AreEqual (5, children.Length);
+ Assert.AreEqual (10, children.Length);
Assert.AreEqual ("Capacity", children [0].Name);
- Assert.AreEqual ("Count", children [1].Name);
- Assert.AreEqual ("Static members", children [2].Name);
- Assert.AreEqual ("Non-public members", children [3].Name);
- Assert.AreEqual ("IEnumerator", children [4].Name);
+ Assert.AreEqual ("Static members", children [7].Name);
+ Assert.AreEqual ("Non-public members", children [8].Name);
+ Assert.AreEqual ("IEnumerator", children [9].Name);
}
val = Eval ("alist");
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj
index 25bf813d8d..b1212633d0 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj
@@ -60,11 +60,6 @@
<Name>MonoDevelop.Core</Name>
<Private>False</Private>
</ProjectReference>
- <ProjectReference Include="..\..\..\core\Mono.Texteditor\Mono.TextEditor.csproj">
- <Project>{A2329308-3751-4DBD-9A75-5F7B8B024625}</Project>
- <Name>Mono.TextEditor</Name>
- <Private>False</Private>
- </ProjectReference>
<ProjectReference Include="..\..\..\core\MonoDevelop.Ide\MonoDevelop.Ide.csproj">
<Project>{27096E7F-C91C-4AC6-B289-6897A701DF21}</Project>
<Name>MonoDevelop.Ide</Name>
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml
index 78c001deee..806bbfd00f 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml
@@ -30,12 +30,12 @@
</ExtensionPoint>
<Extension path = "/MonoDevelop/Ide/Pads">
<Category id="Debug" _name="Debug Windows">
- <Pad id = "MonoDevelop.Debugger.WatchPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-watch" class = "MonoDevelop.Debugger.WatchPad" _label="Watch" />
- <Pad id = "MonoDevelop.Debugger.LocalsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-locals" class = "MonoDevelop.Debugger.LocalsPad" _label="Locals" />
<Pad id = "MonoDevelop.Debugger.BreakpointPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-breakpoints" class = "MonoDevelop.Debugger.BreakpointPad" _label="Breakpoints" />
- <Pad id = "MonoDevelop.Debugger.ThreadsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-threads" class = "MonoDevelop.Debugger.ThreadsPad" _label="Threads" />
- <Pad id = "MonoDevelop.Debugger.StackTracePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.WatchPad/Right Bottom" icon="md-view-debug-call-stack" class = "MonoDevelop.Debugger.StackTracePad" _label="Call Stack" />
+ <Pad id = "MonoDevelop.Debugger.LocalsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-locals" class = "MonoDevelop.Debugger.LocalsPad" _label="Locals" />
+ <Pad id = "MonoDevelop.Debugger.WatchPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-watch" class = "MonoDevelop.Debugger.WatchPad" _label="Watch" />
<Pad id = "MonoDevelop.Debugger.ImmediatePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.StackTracePad/Center Bottom" icon="md-view-debug-immediate" class = "MonoDevelop.Debugger.ImmediatePad" _label="Immediate" />
+ <Pad id = "MonoDevelop.Debugger.StackTracePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.WatchPad/Right Bottom" icon="md-view-debug-call-stack" class = "MonoDevelop.Debugger.StackTracePad" _label="Call Stack" />
+ <Pad id = "MonoDevelop.Debugger.ThreadsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-threads" class = "MonoDevelop.Debugger.ThreadsPad" _label="Threads" />
</Category>
</Extension>
@@ -56,14 +56,14 @@
<Extension path = "/MonoDevelop/Ide/Commands/Project">
<Command id = "MonoDevelop.Debugger.DebugCommands.Debug"
defaultHandler = "MonoDevelop.Debugger.DebugHandler"
- icon = "md-execute-debug"
+ icon = "md-bug"
shortcut = "F5"
macShortcut = "Meta|Return"
_description = "Start debugging"
_label = "Start _Debugging" />
<Command id = "MonoDevelop.Debugger.DebugCommands.DebugEntry"
defaultHandler = "MonoDevelop.Debugger.DebugEntryHandler"
- icon = "md-execute-debug"
+ icon = "md-bug"
_description = "Debug current project"
_label = "Start D_ebugging Item" />
</Extension>
@@ -124,7 +124,7 @@
<Command id = "MonoDevelop.Debugger.DebugCommands.NewCatchpoint"
defaultHandler = "MonoDevelop.Debugger.NewCatchpointHandler"
_label = "New Exception Catchpoint"
- icon = "md-breakpoint-new" />
+ icon = "md-catchpoint-new" />
<Command id = "MonoDevelop.Debugger.DebugCommands.ShowBreakpoints"
defaultHandler = "MonoDevelop.Debugger.ShowBreakpointsHandler"
_label = "View Breakpoints"
@@ -164,6 +164,7 @@
defaultHandler = "MonoDevelop.Debugger.ExpressionEvaluatorCommand" />
<Command id = "MonoDevelop.Debugger.DebugCommands.ShowCurrentExecutionLine"
_label = "Show Current Execution Line"
+ icon = "md-go-to-line"
shortcut = "Alt|*"
defaultHandler = "MonoDevelop.Debugger.ShowCurrentExecutionLineCommand" />
<Command id = "MonoDevelop.Debugger.DebugCommands.AddWatch"
@@ -230,15 +231,12 @@
</Extension>
<Extension path = "/MonoDevelop/Core/StockIcons">
- <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-16.png" size = "Menu"/>
- <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-22.png" size = "SmallToolbar"/>
- <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-24.png" size = "LargeToolbar"/>
<StockIcon stockid = "md-continue-debug" resource = "continue-16.png" size = "Menu"/>
<StockIcon stockid = "md-pause-debug" resource = "pause-16.png" size = "Menu"/>
<StockIcon stockid = "md-step-into-debug" resource = "step-in-16.png" size = "Menu"/>
<StockIcon stockid = "md-step-out-debug" resource = "step-out-16.png" size = "Menu"/>
<StockIcon stockid = "md-step-over-debug" resource = "step-over-16.png" size = "Menu"/>
- <StockIcon stockid = "md-view-debug-breakpoints" resource = "breakpoint-16.png" size="Menu" />
+ <StockIcon stockid = "md-view-debug-breakpoints" resource = "pad-breakpoints-16.png" size="Menu" />
<StockIcon stockid = "md-view-debug-call-stack" resource = "pad-call-stack-16.png" size="Menu" />
<StockIcon stockid = "md-view-debug-locals" resource = "pad-locals-16.png" size="Menu" />
<StockIcon stockid = "md-view-debug-threads" resource = "pad-threads-16.png" size="Menu" />
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj
index b90a0b4dd1..3bece5c534 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj
@@ -91,6 +91,26 @@
<Reference Include="System.Core" />
<Reference Include="Mono.Cairo" />
<Reference Include="System.Drawing" />
+ <Reference Include="System.Reflection.Metadata">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\System.Reflection.Metadata.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="System.Collections.Immutable">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\System.Collections.Immutable.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis.Workspaces">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis.CSharp">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
@@ -103,11 +123,6 @@
<Name>MonoDevelop.Ide</Name>
<Private>False</Private>
</ProjectReference>
- <ProjectReference Include="..\..\core\Mono.Texteditor\Mono.TextEditor.csproj">
- <Project>{A2329308-3751-4DBD-9A75-5F7B8B024625}</Project>
- <Name>Mono.TextEditor</Name>
- <Private>False</Private>
- </ProjectReference>
<ProjectReference Include="..\..\..\external\nrefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -136,7 +151,6 @@
<Compile Include="MonoDevelop.Debugger\WatchPad.cs" />
<Compile Include="MonoDevelop.Debugger\Initializer.cs" />
<Compile Include="MonoDevelop.Debugger\DisassemblyView.cs" />
- <Compile Include="MonoDevelop.Debugger\DebugTextMarker.cs" />
<Compile Include="MonoDevelop.Debugger\BreakpointPad.cs" />
<Compile Include="MonoDevelop.Debugger\LocalsPad.cs" />
<Compile Include="MonoDevelop.Debugger\ObjectValuePad.cs" />
@@ -186,6 +200,7 @@
<Compile Include="MonoDevelop.Debugger\SourceCodeLookup.cs" />
<Compile Include="gtk-gui\MonoDevelop.Debugger.DebugApplicationDialog.cs" />
<Compile Include="MonoDevelop.Debugger\DebugApplicationDialog.cs" />
+ <Compile Include="MonoDevelop.Debugger\Styles.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MonoDevelop.Debugger.addin.xml">
@@ -194,35 +209,53 @@
<EmbeddedResource Include="gtk-gui\gui.stetic">
<LogicalName>gui.stetic</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-16.png">
- <LogicalName>debug-overlay-16.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16.png">
+ <LogicalName>breakpoint-16.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\breakpoint-16%402x.png">
+ <LogicalName>breakpoint-16@2x.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-16%402x.png">
- <LogicalName>debug-overlay-16@2x.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~dark.png">
+ <LogicalName>breakpoint-16~dark.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-22.png">
- <LogicalName>debug-overlay-22.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~dark%402x.png">
+ <LogicalName>breakpoint-16~dark@2x.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-22%402x.png">
- <LogicalName>debug-overlay-22@2x.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~disabled.png">
+ <LogicalName>breakpoint-16~disabled.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-24.png">
- <LogicalName>debug-overlay-24.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~disabled%402x.png">
+ <LogicalName>breakpoint-16~disabled@2x.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-24%402x.png">
- <LogicalName>debug-overlay-24@2x.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~dark~disabled.png">
+ <LogicalName>breakpoint-16~dark~disabled.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-32.png">
- <LogicalName>debug-overlay-32.png</LogicalName>
+ <EmbeddedResource Include="icons\breakpoint-16~dark~disabled%402x.png">
+ <LogicalName>breakpoint-16~dark~disabled@2x.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\debug-overlay-32%402x.png">
- <LogicalName>debug-overlay-32@2x.png</LogicalName>
+ <EmbeddedResource Include="icons\pad-breakpoints-16.png">
+ <LogicalName>pad-breakpoints-16.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\breakpoint-16.png">
- <LogicalName>breakpoint-16.png</LogicalName>
+ <EmbeddedResource Include="icons\pad-breakpoints-16%402x.png">
+ <LogicalName>pad-breakpoints-16@2x.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\breakpoint-16%402x.png">
- <LogicalName>breakpoint-16@2x.png</LogicalName>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~dark.png">
+ <LogicalName>pad-breakpoints-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~dark%402x.png">
+ <LogicalName>pad-breakpoints-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~sel.png">
+ <LogicalName>pad-breakpoints-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~sel%402x.png">
+ <LogicalName>pad-breakpoints-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~dark~sel.png">
+ <LogicalName>pad-breakpoints-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-breakpoints-16~dark~sel%402x.png">
+ <LogicalName>pad-breakpoints-16~dark~sel@2x.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\pad-call-stack-16.png">
<LogicalName>pad-call-stack-16.png</LogicalName>
@@ -230,84 +263,246 @@
<EmbeddedResource Include="icons\pad-call-stack-16%402x.png">
<LogicalName>pad-call-stack-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~dark.png">
+ <LogicalName>pad-call-stack-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~dark%402x.png">
+ <LogicalName>pad-call-stack-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~sel.png">
+ <LogicalName>pad-call-stack-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~sel%402x.png">
+ <LogicalName>pad-call-stack-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~dark~sel.png">
+ <LogicalName>pad-call-stack-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-call-stack-16~dark~sel%402x.png">
+ <LogicalName>pad-call-stack-16~dark~sel@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\pad-locals-16.png">
<LogicalName>pad-locals-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\pad-locals-16%402x.png">
<LogicalName>pad-locals-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~dark.png">
+ <LogicalName>pad-locals-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~dark%402x.png">
+ <LogicalName>pad-locals-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~sel.png">
+ <LogicalName>pad-locals-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~sel%402x.png">
+ <LogicalName>pad-locals-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~dark~sel.png">
+ <LogicalName>pad-locals-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-locals-16~dark~sel%402x.png">
+ <LogicalName>pad-locals-16~dark~sel@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\pad-threads-16.png">
<LogicalName>pad-threads-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\pad-threads-16%402x.png">
<LogicalName>pad-threads-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~dark.png">
+ <LogicalName>pad-threads-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~dark%402x.png">
+ <LogicalName>pad-threads-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~sel.png">
+ <LogicalName>pad-threads-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~sel%402x.png">
+ <LogicalName>pad-threads-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~dark~sel.png">
+ <LogicalName>pad-threads-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-threads-16~dark~sel%402x.png">
+ <LogicalName>pad-threads-16~dark~sel@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\pad-watch-16.png">
<LogicalName>pad-watch-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\pad-watch-16%402x.png">
<LogicalName>pad-watch-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~dark.png">
+ <LogicalName>pad-watch-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~dark%402x.png">
+ <LogicalName>pad-watch-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~sel.png">
+ <LogicalName>pad-watch-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~sel%402x.png">
+ <LogicalName>pad-watch-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~dark~sel.png">
+ <LogicalName>pad-watch-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pad-watch-16~dark~sel%402x.png">
+ <LogicalName>pad-watch-16~dark~sel@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\prefs-debugger-16.png">
<LogicalName>prefs-debugger-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\prefs-debugger-16%402x.png">
<LogicalName>prefs-debugger-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~dark.png">
+ <LogicalName>prefs-debugger-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~dark%402x.png">
+ <LogicalName>prefs-debugger-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~sel.png">
+ <LogicalName>prefs-debugger-16~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~sel%402x.png">
+ <LogicalName>prefs-debugger-16~sel@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~dark~sel.png">
+ <LogicalName>prefs-debugger-16~dark~sel.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\prefs-debugger-16~dark~sel%402x.png">
+ <LogicalName>prefs-debugger-16~dark~sel@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\lightning-16.png">
<LogicalName>lightning-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\lightning-16%402x.png">
<LogicalName>lightning-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~dark.png">
+ <LogicalName>lightning-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~dark%402x.png">
+ <LogicalName>lightning-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~disabled.png">
+ <LogicalName>lightning-16~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~disabled%402x.png">
+ <LogicalName>lightning-16~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~dark~disabled.png">
+ <LogicalName>lightning-16~dark~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\lightning-16~dark~disabled%402x.png">
+ <LogicalName>lightning-16~dark~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\exception-48~dark.png">
+ <LogicalName>exception-48~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\exception-48~dark%402x.png">
+ <LogicalName>exception-48~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-15.png">
<LogicalName>gutter-breakpoint-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-15%402x.png">
<LogicalName>gutter-breakpoint-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-15~dark.png">
+ <LogicalName>gutter-breakpoint-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-15~dark%402x.png">
+ <LogicalName>gutter-breakpoint-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-disabled-15.png">
<LogicalName>gutter-breakpoint-disabled-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-disabled-15%402x.png">
<LogicalName>gutter-breakpoint-disabled-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15~dark.png">
+ <LogicalName>gutter-breakpoint-disabled-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15~dark%402x.png">
+ <LogicalName>gutter-breakpoint-disabled-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-invalid-15.png">
<LogicalName>gutter-breakpoint-invalid-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-breakpoint-invalid-15%402x.png">
<LogicalName>gutter-breakpoint-invalid-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15~dark.png">
+ <LogicalName>gutter-breakpoint-invalid-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15~dark%402x.png">
+ <LogicalName>gutter-breakpoint-invalid-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-execution-15.png">
<LogicalName>gutter-execution-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-execution-15%402x.png">
<LogicalName>gutter-execution-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-execution-15~dark.png">
+ <LogicalName>gutter-execution-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-execution-15~dark%402x.png">
+ <LogicalName>gutter-execution-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-stack-15.png">
<LogicalName>gutter-stack-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-stack-15%402x.png">
<LogicalName>gutter-stack-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-stack-15~dark.png">
+ <LogicalName>gutter-stack-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-stack-15~dark%402x.png">
+ <LogicalName>gutter-stack-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-15.png">
<LogicalName>gutter-tracepoint-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-15%402x.png">
<LogicalName>gutter-tracepoint-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-15~dark.png">
+ <LogicalName>gutter-tracepoint-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-15~dark%402x.png">
+ <LogicalName>gutter-tracepoint-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-disabled-15.png">
<LogicalName>gutter-tracepoint-disabled-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-disabled-15%402x.png">
<LogicalName>gutter-tracepoint-disabled-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15~dark.png">
+ <LogicalName>gutter-tracepoint-disabled-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15~dark%402x.png">
+ <LogicalName>gutter-tracepoint-disabled-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-invalid-15.png">
<LogicalName>gutter-tracepoint-invalid-15.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\gutter-tracepoint-invalid-15%402x.png">
<LogicalName>gutter-tracepoint-invalid-15@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15~dark.png">
+ <LogicalName>gutter-tracepoint-invalid-15~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15~dark%402x.png">
+ <LogicalName>gutter-tracepoint-invalid-15~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\stack-pointer-16.png">
<LogicalName>stack-pointer-16.png</LogicalName>
</EmbeddedResource>
@@ -326,6 +521,24 @@
<EmbeddedResource Include="icons\exception-outline-16%402x.png">
<LogicalName>exception-outline-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~dark.png">
+ <LogicalName>stack-pointer-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~dark%402x.png">
+ <LogicalName>stack-pointer-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~disabled.png">
+ <LogicalName>stack-pointer-16~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~disabled%402x.png">
+ <LogicalName>stack-pointer-16~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~dark~disabled.png">
+ <LogicalName>stack-pointer-16~dark~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\stack-pointer-16~dark~disabled%402x.png">
+ <LogicalName>stack-pointer-16~dark~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' != 'DebugMac' AND '$(Configuration)' != 'ReleaseMac' ">
<EmbeddedResource Include="icons\pause-16.png">
@@ -334,62 +547,158 @@
<EmbeddedResource Include="icons\pause-16%402x.png">
<LogicalName>pause-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\pause-16~dark.png">
+ <LogicalName>pause-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\pause-16~dark%402x.png">
+ <LogicalName>pause-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\step-in-16.png">
<LogicalName>step-in-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\step-in-16%402x.png">
<LogicalName>step-in-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\step-in-16~dark.png">
+ <LogicalName>step-in-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\step-in-16~dark%402x.png">
+ <LogicalName>step-in-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\step-out-16.png">
<LogicalName>step-out-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\step-out-16%402x.png">
<LogicalName>step-out-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\step-out-16~dark.png">
+ <LogicalName>step-out-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\step-out-16~dark%402x.png">
+ <LogicalName>step-out-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\step-over-16.png">
<LogicalName>step-over-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\step-over-16%402x.png">
<LogicalName>step-over-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\step-over-16~dark.png">
+ <LogicalName>step-over-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\step-over-16~dark%402x.png">
+ <LogicalName>step-over-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\continue-16.png">
<LogicalName>continue-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\continue-16%402x.png">
<LogicalName>continue-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\continue-16~dark.png">
+ <LogicalName>continue-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\continue-16~dark%402x.png">
+ <LogicalName>continue-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'DebugMac' OR '$(Configuration)' == 'ReleaseMac' ">
- <EmbeddedResource Include="icons\mac\pause.png">
+ <EmbeddedResource Include="icons\mac\pause-16.png">
<LogicalName>pause-16.png</LogicalName>
</EmbeddedResource>
- <EmbeddedResource Include="icons\mac\pause%402x.png">
+ <EmbeddedResource Include="icons\mac\pause-16%402x.png">
<LogicalName>pause-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\pause-16~dark.png">
+ <LogicalName>pause-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\pause-16~dark%402x.png">
+ <LogicalName>pause-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\mac\continue-16.png">
<LogicalName>continue-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\mac\continue-16%402x.png">
<LogicalName>continue-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\continue-16~dark.png">
+ <LogicalName>continue-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\continue-16~dark%402x.png">
+ <LogicalName>continue-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-in-16%402x.png">
<LogicalName>step-in-16@2x.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-in-16.png">
<LogicalName>step-in-16.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~disabled.png">
+ <LogicalName>step-in-16~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~disabled%402x.png">
+ <LogicalName>step-in-16~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~dark.png">
+ <LogicalName>step-in-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~dark%402x.png">
+ <LogicalName>step-in-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~disabled~dark.png">
+ <LogicalName>step-in-16~disabled~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-in-16~disabled~dark%402x.png">
+ <LogicalName>step-in-16~disabled~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-out-16.png">
<LogicalName>step-out-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-out-16%402x.png">
<LogicalName>step-out-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~disabled.png">
+ <LogicalName>step-out-16~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~disabled%402x.png">
+ <LogicalName>step-out-16~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~dark.png">
+ <LogicalName>step-out-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~dark%402x.png">
+ <LogicalName>step-out-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~disabled~dark.png">
+ <LogicalName>step-out-16~disabled~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-out-16~disabled~dark%402x.png">
+ <LogicalName>step-out-16~disabled~dark@2x.png</LogicalName>
+ </EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-over-16.png">
<LogicalName>step-over-16.png</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="icons\mac\step-over-16%402x.png">
<LogicalName>step-over-16@2x.png</LogicalName>
</EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~disabled.png">
+ <LogicalName>step-over-16~disabled.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~disabled%402x.png">
+ <LogicalName>step-over-16~disabled@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~dark.png">
+ <LogicalName>step-over-16~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~dark%402x.png">
+ <LogicalName>step-over-16~dark@2x.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~disabled~dark.png">
+ <LogicalName>step-over-16~disabled~dark.png</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="icons\mac\step-over-16~disabled~dark%402x.png">
+ <LogicalName>step-over-16~disabled~dark@2x.png</LogicalName>
+ </EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
index fe65568897..9c395b5889 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
@@ -40,7 +40,7 @@ using MonoDevelop.Ide;
namespace MonoDevelop.Debugger
{
- public class BreakpointPad : IPadContent
+ public class BreakpointPad : PadContent
{
BreakpointStore breakpoints;
@@ -51,11 +51,6 @@ namespace MonoDevelop.Debugger
CommandEntrySet menuSet;
TreeViewState treeState;
- EventHandler<BreakpointEventArgs> breakpointUpdatedHandler;
- EventHandler<BreakpointEventArgs> breakpointRemovedHandler;
- EventHandler<BreakpointEventArgs> breakpointAddedHandler;
- EventHandler breakpointChangedHandler;
-
enum Columns
{
Icon,
@@ -74,12 +69,13 @@ namespace MonoDevelop.Debugger
Properties
}
- public void Initialize (IPadWindow window)
+ protected override void Initialize (IPadWindow window)
{
+ Id = "MonoDevelop.Debugger.BreakpointPad";
// Toolbar and menu definitions
ActionCommand gotoCmd = new ActionCommand (LocalCommands.GoToFile, GettextCatalog.GetString ("Go to File"));
- ActionCommand propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Properties"), Gtk.Stock.Properties);
+ ActionCommand propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Properties"), Stock.Properties);
menuSet = new CommandEntrySet ();
menuSet.Add (gotoCmd);
@@ -99,8 +95,8 @@ namespace MonoDevelop.Debugger
toolbarSet.AddSeparator ();
toolbarSet.Add (propertiesCmd);
toolbarSet.AddSeparator ();
- toolbarSet.Add (new CommandEntry (DebugCommands.NewFunctionBreakpoint){ DispayType = CommandEntryDisplayType.IconAndText });
- toolbarSet.Add (new CommandEntry (DebugCommands.NewCatchpoint){ DispayType = CommandEntryDisplayType.IconAndText });
+ toolbarSet.Add (new CommandEntry (DebugCommands.NewFunctionBreakpoint){ DisplayType = CommandEntryDisplayType.IconAndText });
+ toolbarSet.Add (new CommandEntry (DebugCommands.NewCatchpoint){ DisplayType = CommandEntryDisplayType.IconAndText });
// The breakpoint list
@@ -162,15 +158,10 @@ namespace MonoDevelop.Debugger
UpdateDisplay ();
- breakpointUpdatedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointUpdated);
- breakpointRemovedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointRemoved);
- breakpointAddedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointAdded);
- breakpointChangedHandler = DispatchService.GuiDispatch<EventHandler> (OnBreakpointChanged);
-
- breakpoints.BreakpointAdded += breakpointAddedHandler;
- breakpoints.BreakpointRemoved += breakpointRemovedHandler;
- breakpoints.Changed += breakpointChangedHandler;
- breakpoints.BreakpointUpdated += breakpointUpdatedHandler;
+ breakpoints.BreakpointAdded += OnBreakpointAdded;
+ breakpoints.BreakpointRemoved += OnBreakpointRemoved;
+ breakpoints.Changed += OnBreakpointChanged;
+ breakpoints.BreakpointUpdated += OnBreakpointUpdated;
DebuggingService.PausedEvent += OnDebuggerStatusCheck;
DebuggingService.ResumedEvent += OnDebuggerStatusCheck;
@@ -178,21 +169,22 @@ namespace MonoDevelop.Debugger
tree.RowActivated += OnRowActivated;
- DockItemToolbar toolbar = window.GetToolbar (PositionType.Top);
+ DockItemToolbar toolbar = window.GetToolbar (DockPositionType.Top);
toolbar.Add (toolbarSet, sw);
toolbar.ShowAll ();
}
- public void Dispose ()
+ public override void Dispose ()
{
- breakpoints.BreakpointAdded -= breakpointAddedHandler;
- breakpoints.BreakpointRemoved -= breakpointRemovedHandler;
- breakpoints.Changed -= breakpointChangedHandler;
- breakpoints.BreakpointUpdated -= breakpointUpdatedHandler;
+ breakpoints.BreakpointAdded -= OnBreakpointAdded;
+ breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
+ breakpoints.Changed -= OnBreakpointChanged;
+ breakpoints.BreakpointUpdated -= OnBreakpointUpdated;
DebuggingService.PausedEvent -= OnDebuggerStatusCheck;
DebuggingService.ResumedEvent -= OnDebuggerStatusCheck;
DebuggingService.StoppedEvent -= OnDebuggerStatusCheck;
+ base.Dispose ();
}
void ShowPopup (Gdk.EventButton evt)
@@ -226,7 +218,7 @@ namespace MonoDevelop.Debugger
[CommandHandler (DebugCommands.EnableDisableBreakpoint)]
protected void OnEnableDisable ()
{
- breakpoints.Changed -= breakpointChangedHandler;
+ breakpoints.Changed -= OnBreakpointChanged;
try {
bool enable = false;
@@ -258,7 +250,7 @@ namespace MonoDevelop.Debugger
store.SetValue (iter, (int) Columns.Selected, enable);
}
} finally {
- breakpoints.Changed += breakpointChangedHandler;
+ breakpoints.Changed += OnBreakpointChanged;
}
}
@@ -282,7 +274,7 @@ namespace MonoDevelop.Debugger
{
bool deleted = false;
- breakpoints.BreakpointRemoved -= breakpointRemovedHandler;
+ breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
try {
// Note: since we'll be modifying the list of breakpoints, we need to sort
@@ -302,7 +294,7 @@ namespace MonoDevelop.Debugger
deleted = true;
}
} finally {
- breakpoints.BreakpointRemoved += breakpointRemovedHandler;
+ breakpoints.BreakpointRemoved += OnBreakpointRemoved;
}
return deleted;
@@ -369,7 +361,7 @@ namespace MonoDevelop.Debugger
void ItemToggled (object o, ToggledArgs args)
{
- breakpoints.Changed -= breakpointChangedHandler;
+ breakpoints.Changed -= OnBreakpointChanged;
try {
TreeIter iter;
@@ -382,7 +374,7 @@ namespace MonoDevelop.Debugger
store.SetValue (iter, (int) Columns.Selected, bp.Enabled);
}
} finally {
- breakpoints.Changed += breakpointChangedHandler;
+ breakpoints.Changed += OnBreakpointChanged;
}
}
@@ -430,36 +422,38 @@ namespace MonoDevelop.Debugger
void OnBreakpointUpdated (object s, BreakpointEventArgs args)
{
- TreeIter it;
-
- if (!store.GetIterFirst (out it))
- return;
-
- do {
- var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint);
- if (bp == args.Breakpoint) {
- string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : "";
- string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : "";
- store.SetValue (it, (int) Columns.HitCount, hitCount);
- store.SetValue (it, (int) Columns.LastTrace, traceVal);
- break;
- }
- } while (store.IterNext (ref it));
+ Runtime.RunInMainThread (() => {
+ TreeIter it;
+
+ if (!store.GetIterFirst (out it))
+ return;
+
+ do {
+ var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint);
+ if (bp == args.Breakpoint) {
+ string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : "";
+ string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : "";
+ store.SetValue (it, (int) Columns.HitCount, hitCount);
+ store.SetValue (it, (int) Columns.LastTrace, traceVal);
+ break;
+ }
+ } while (store.IterNext (ref it));
+ });
}
protected void OnBreakpointAdded (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread ((System.Action)UpdateDisplay);
}
protected void OnBreakpointRemoved (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread ((System.Action)UpdateDisplay);
}
protected void OnBreakpointChanged (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread ((System.Action)UpdateDisplay);
}
void OnDebuggerStatusCheck (object s, EventArgs a)
@@ -473,25 +467,16 @@ namespace MonoDevelop.Debugger
OnBpJumpTo ();
}
- public Gtk.Widget Control {
+ public override Control Control {
get {
return control;
}
}
- public string Id {
- get { return "MonoDevelop.Debugger.BreakpointPad"; }
- }
-
public string DefaultPlacement {
get { return "Bottom"; }
}
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
protected void OnDeleteClicked (object o, EventArgs args)
{
OnDeleted ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
index 8e11088ce8..225366c8c1 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
@@ -36,6 +36,7 @@ using Xwt;
using Xwt.Drawing;
using System.Linq;
using System.IO;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
@@ -203,7 +204,7 @@ namespace MonoDevelop.Debugger
public BreakpointPropertiesDialog (BreakEvent be, BreakpointType breakpointType)
{
this.be = be;
- LoadExceptionList ();
+ Task.Run (LoadExceptionList);
Initialize ();
SetInitialData ();
SetLayout ();
@@ -351,7 +352,7 @@ namespace MonoDevelop.Debugger
if (project != null) {
// Check the startup project of the solution too, since the current project may be a library
- SolutionEntityItem startup = project.ParentSolution.StartupItem;
+ SolutionItem startup = project.ParentSolution.StartupItem;
entryConditionalExpression.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.ConditionalBreakpoints) ||
DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.ConditionalBreakpoints);
@@ -419,8 +420,8 @@ namespace MonoDevelop.Debugger
IdeApp.Workbench.ActiveDocument.Editor != null &&
IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null) {
breakpointLocation.Update (IdeApp.Workbench.ActiveDocument.FileName,
- IdeApp.Workbench.ActiveDocument.Editor.Caret.Line,
- IdeApp.Workbench.ActiveDocument.Editor.Caret.Column);
+ IdeApp.Workbench.ActiveDocument.Editor.CaretLine,
+ IdeApp.Workbench.ActiveDocument.Editor.CaretColumn);
entryLocationFile.Text = breakpointLocation.ToString ();
stopOnLocation.Active = true;
}
@@ -441,7 +442,7 @@ namespace MonoDevelop.Debugger
public void Update (string location)
{
if (string.IsNullOrWhiteSpace (location)) {
- Warning = GettextCatalog.GetString ("Enter location");
+ Warning = GettextCatalog.GetString ("Enter location.");
return;
}
var splitted = location.Split (':');
@@ -455,22 +456,22 @@ namespace MonoDevelop.Debugger
}
splitted = newSplitted;
} else {
- Warning = GettextCatalog.GetString ("File does not exist");
+ Warning = GettextCatalog.GetString ("File does not exist.");
return;
}
}
if (splitted.Length < 2) {
- Warning = GettextCatalog.GetString ("Missing ':' for line declaration");
+ Warning = GettextCatalog.GetString ("Missing ':' for line declaration.");
return;
}
FileName = splitted [0];
if (!int.TryParse (splitted [1], out line)) {
- Warning = GettextCatalog.GetString ("Line is not a number");
+ Warning = GettextCatalog.GetString ("Line is not a number.");
return;
}
if (splitted.Length > 2 && !int.TryParse (splitted [2], out column)) {
- Warning = GettextCatalog.GetString ("Column is not a number");
+ Warning = GettextCatalog.GetString ("Column is not a number.");
return;
} else {
column = 1;
@@ -486,7 +487,7 @@ namespace MonoDevelop.Debugger
public void Update (string filePath, int line, int column)
{
if (!System.IO.File.Exists (filePath)) {
- Warning = GettextCatalog.GetString ("File does not exist");
+ Warning = GettextCatalog.GetString ("File does not exist.");
} else {
Warning = "";
}
@@ -617,7 +618,7 @@ namespace MonoDevelop.Debugger
if (breakpointActionPrint.Active && string.IsNullOrWhiteSpace (entryPrintExpression.Text)) {
warningPrintExpression.Show ();
- warningPrintExpression.ToolTip = GettextCatalog.GetString ("Trace expression not specified");
+ warningPrintExpression.ToolTip = GettextCatalog.GetString ("Enter trace expression.");
result = false;
}
@@ -627,13 +628,13 @@ namespace MonoDevelop.Debugger
if (stopOnFunction.Active) {
if (text.Length == 0) {
warningFunction.Show ();
- warningFunction.ToolTip = GettextCatalog.GetString ("Function name not specified");
+ warningFunction.ToolTip = GettextCatalog.GetString ("Enter function name.");
result = false;
}
if (!TryParseFunction (text, out parsedFunction, out parsedParamTypes)) {
warningFunction.Show ();
- warningFunction.ToolTip = GettextCatalog.GetString ("Invalid function syntax");
+ warningFunction.ToolTip = GettextCatalog.GetString ("Invalid function syntax.");
result = false;
}
}
@@ -645,10 +646,16 @@ namespace MonoDevelop.Debugger
result = false;
}
} else if (stopOnException.Active) {
- if (!classes.Contains (entryExceptionType.Text)) {
+ if (string.IsNullOrWhiteSpace (entryExceptionType.Text)) {
warningException.Show ();
- warningException.ToolTip = GettextCatalog.GetString ("Exception not identified");
+ warningException.ToolTip = GettextCatalog.GetString ("Enter exception type.");
result = false;
+ } else if (!classes.Contains (entryExceptionType.Text)) {
+ warningException.Show ();
+ warningException.ToolTip = GettextCatalog.GetString ("Exception not identified in exception list generated from currently selected project.");
+ //We might be missing some exceptions that are loaded at runtime from outside our project
+ //or we don't have project at all, hence show warning but still allow user to close window
+ result = true;
}
}
return result;
@@ -684,24 +691,35 @@ namespace MonoDevelop.Debugger
return true;
}
- void LoadExceptionList ()
+ async Task LoadExceptionList ()
{
classes.Add ("System.Exception");
- if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
- var dom = TypeSystemService.GetCompilation (IdeApp.ProjectOperations.CurrentSelectedProject);
- foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
- classes.Add (t.ReflectionName);
- } else {
- // no need to unload this assembly context, it's not cached.
- var unresolvedAssembly = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(Uri).Assembly.Location);
- var mscorlib = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(object).Assembly.Location);
- if (unresolvedAssembly != null && mscorlib != null) {
- var dom = new ICSharpCode.NRefactory.TypeSystem.Implementation.SimpleCompilation (unresolvedAssembly, mscorlib);
- foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ())
- classes.Add (t.ReflectionName);
+ try {
+ Microsoft.CodeAnalysis.Compilation compilation = null;
+ Microsoft.CodeAnalysis.ProjectId dummyProjectId = null;
+ if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
+ compilation = await TypeSystemService.GetCompilationAsync (IdeApp.ProjectOperations.CurrentSelectedProject);
+ }
+ if (compilation == null) {
+ //no need to unload this assembly context, it's not cached.
+ dummyProjectId = Microsoft.CodeAnalysis.ProjectId.CreateNewId ("GetExceptionsProject");
+ compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create ("GetExceptions")
+ .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (object)).Location))//corlib
+ .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (Uri)).Location));//System.dll
}
+ var exceptionClass = compilation.GetTypeByMetadataName ("System.Exception");
+ foreach (var t in compilation.GlobalNamespace.GetAllTypes ().Where ((arg) => arg.IsDerivedFromClass (exceptionClass))) {
+ classes.Add (t.GetFullMetadataName ());
+ }
+ if (dummyProjectId != null) {
+ MetadataReferenceCache.RemoveReferences (dummyProjectId);
+ }
+ } catch (Exception e) {
+ LoggingService.LogError ("Failed to obtain exceptions list in breakpoint dialog.", e);
}
- entryExceptionType.SetCodeCompletionList (classes.ToList ());
+ await Runtime.RunInMainThread (() => {
+ entryExceptionType.SetCodeCompletionList (classes.ToList ());
+ });
}
public BreakEvent GetBreakEvent ()
@@ -824,4 +842,4 @@ namespace MonoDevelop.Debugger
base.Dispose (disposing);
}
}
-} \ No newline at end of file
+}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs
index d82779bcbc..48bdacad81 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs
@@ -26,27 +26,46 @@
using System;
using Mono.Debugging.Client;
+using MonoDevelop.Ide;
namespace MonoDevelop.Debugger
{
- public partial class BusyEvaluatorDialog : Gtk.Dialog
+ class BusyEvaluator
{
- public BusyEvaluatorDialog ()
- {
- this.Build ();
- //Prevent closing dialog via X button, user can either wait with
- //dialog open or press "Stop Debugger" button
- DeleteEvent += (o, args) => args.RetVal = true;
+ public BusyEvaluatorDialog Dialog {
+ get;
+ private set;
}
public void UpdateBusyState (BusyStateEventArgs args)
{
if (!args.IsBusy) {
- Hide ();
+ if (Dialog != null) {
+ Dialog.Destroy ();
+ Dialog.Dispose ();
+ Dialog = null;
+ }
} else {
- Show ();
+ if (Dialog == null)
+ Dialog = new BusyEvaluatorDialog ();
+
+ Dialog.Show ();
}
}
+ }
+
+ public partial class BusyEvaluatorDialog : Gtk.Dialog
+ {
+ public BusyEvaluatorDialog ()
+ {
+ this.Build ();
+ //Prevent closing dialog via X button, user can either wait with
+ //dialog open or press "Stop Debugger" button
+ DeleteEvent += (o, args) => args.RetVal = true;
+ Modal = true;
+ TransientFor = MessageService.RootWindow;
+ DestroyWithParent = true;
+ }
protected virtual void OnButtonCancelClicked (object sender, System.EventArgs e)
{
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
index 7eb9ee537d..cb282f2f2b 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
@@ -79,40 +79,18 @@ namespace MonoDevelop.Debugger
IdeApp.ProjectOperations.CurrentSelectedBuildTarget;
}
- internal static void BuildAndDebug ()
+ internal async static void BuildAndDebug ()
{
if (!DebuggingService.IsDebuggingSupported && !IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted) {
MonoDevelop.Ide.Commands.StopHandler.StopBuildOperations ();
- IdeApp.ProjectOperations.CurrentRunOperation.WaitForCompleted ();
+ await IdeApp.ProjectOperations.CurrentRunOperation.Task;
}
if (IdeApp.Workspace.IsOpen) {
var it = GetRunTarget ();
- var op = IdeApp.ProjectOperations.CheckAndBuildForExecute (it);
- op.Completed += delegate {
- if (op.Success)
- ExecuteSolution (it);
- };
+ ExecuteSolution (it);
return;
}
-
- Document doc = IdeApp.Workbench.ActiveDocument;
- if (doc == null)
- return;
-
- if (!IdeApp.Preferences.BuildBeforeExecuting) {
- ExecuteDocument (doc);
- return;
- }
-
- doc.Save ();
- IAsyncOperation docOp = doc.Build ();
- docOp.Completed += delegate {
- if (docOp.SuccessWithWarnings && !IdeApp.Preferences.RunWithWarnings)
- return;
- if (docOp.Success)
- ExecuteDocument (doc);
- };
}
static void ExecuteSolution (IBuildTarget target)
@@ -123,14 +101,6 @@ namespace MonoDevelop.Debugger
IdeApp.ProjectOperations.Execute (target);
}
- static void ExecuteDocument (Document doc)
- {
- if (doc.CanDebug ())
- doc.Debug ();
- else
- doc.Run ();
- }
-
protected override void Run ()
{
if (DebuggingService.IsPaused) {
@@ -159,7 +129,7 @@ namespace MonoDevelop.Debugger
// just run, so the label has to be changed accordingly.
if (!DebuggingService.IsDebuggingSupported) {
info.Text = IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted ? GettextCatalog.GetString ("Start Without Debugging") : GettextCatalog.GetString ("Restart Without Debugging");
- info.Icon = "gtk-execute";
+ info.Icon = Stock.RunProgramIcon;
}
if (IdeApp.Workspace.IsOpen) {
@@ -171,23 +141,18 @@ namespace MonoDevelop.Debugger
info.Enabled = canExecute && (IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted || !DebuggingService.IsDebuggingSupported);
} else {
- Document doc = IdeApp.Workbench.ActiveDocument;
- info.Enabled = (doc != null && doc.IsBuildTarget) && (doc.CanRun () || doc.CanDebug ());
+ info.Enabled = false;
}
}
}
class DebugEntryHandler: CommandHandler
{
- protected override void Run ()
+ protected async override void Run ()
{
IBuildTarget entry = IdeApp.ProjectOperations.CurrentSelectedBuildTarget;
- var op = IdeApp.ProjectOperations.CheckAndBuildForExecute (entry);
- op.Completed += delegate {
- if (op.Success)
- IdeApp.ProjectOperations.Debug (entry);
- };
+ await IdeApp.ProjectOperations.Debug (entry).Task;
}
protected override void Update (CommandInfo info)
@@ -386,13 +351,13 @@ namespace MonoDevelop.Debugger
Breakpoint bp;
lock (breakpoints)
- bp = breakpoints.Toggle (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line, IdeApp.Workbench.ActiveDocument.Editor.Caret.Column);
+ bp = breakpoints.Toggle (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine, IdeApp.Workbench.ActiveDocument.Editor.CaretColumn);
// If the breakpoint could not be inserted in the caret location, move the caret
// to the real line of the breakpoint, so that if the Toggle command is run again,
// this breakpoint will be removed
- if (bp != null && bp.Line != IdeApp.Workbench.ActiveDocument.Editor.Caret.Line)
- IdeApp.Workbench.ActiveDocument.Editor.Caret.Line = bp.Line;
+ if (bp != null && bp.Line != IdeApp.Workbench.ActiveDocument.Editor.CaretLine)
+ IdeApp.Workbench.ActiveDocument.Editor.CaretLine = bp.Line;
}
protected override void Update (CommandInfo info)
@@ -404,7 +369,7 @@ namespace MonoDevelop.Debugger
!DebuggingService.Breakpoints.IsReadOnly;
}
}
-
+
class EnableDisableBreakpointHandler: CommandHandler
{
protected override void Run ()
@@ -412,7 +377,7 @@ namespace MonoDevelop.Debugger
var breakpoints = DebuggingService.Breakpoints;
lock (breakpoints) {
- foreach (var bp in breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line))
+ foreach (var bp in breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine))
bp.Enabled = !bp.Enabled;
}
}
@@ -427,7 +392,7 @@ namespace MonoDevelop.Debugger
IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null &&
!breakpoints.IsReadOnly) {
lock (breakpoints)
- info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0;
+ info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0;
} else {
info.Enabled = false;
}
@@ -487,7 +452,7 @@ namespace MonoDevelop.Debugger
lock (breakpoints) {
IEnumerable<Breakpoint> brs = breakpoints.GetBreakpointsAtFileLine (
IdeApp.Workbench.ActiveDocument.FileName,
- IdeApp.Workbench.ActiveDocument.Editor.Caret.Line);
+ IdeApp.Workbench.ActiveDocument.Editor.CaretLine);
List<Breakpoint> list = new List<Breakpoint> (brs);
foreach (Breakpoint bp in list)
@@ -505,7 +470,7 @@ namespace MonoDevelop.Debugger
IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null &&
!breakpoints.IsReadOnly) {
lock (breakpoints)
- info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0;
+ info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0;
} else {
info.Enabled = false;
}
@@ -590,11 +555,11 @@ namespace MonoDevelop.Debugger
var doc = IdeApp.Workbench.ActiveDocument;
if (DebuggingService.IsPaused) {
- DebuggingService.RunToCursor (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column);
+ DebuggingService.RunToCursor (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn);
return;
}
- var bp = new RunToCursorBreakpoint (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column);
+ var bp = new RunToCursorBreakpoint (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn);
DebuggingService.Breakpoints.Add (bp);
DebugHandler.BuildAndDebug ();
}
@@ -616,7 +581,7 @@ namespace MonoDevelop.Debugger
info.Enabled = target != null && IdeApp.ProjectOperations.CanDebug (target);
} else {
- info.Enabled = doc.IsBuildTarget && doc.CanDebug ();
+ info.Enabled = false;
}
} else {
info.Enabled = false;
@@ -634,7 +599,7 @@ namespace MonoDevelop.Debugger
lock (breakpoints) {
brs = breakpoints.GetBreakpointsAtFileLine (
IdeApp.Workbench.ActiveDocument.FileName,
- IdeApp.Workbench.ActiveDocument.Editor.Caret.Line);
+ IdeApp.Workbench.ActiveDocument.Editor.CaretLine);
}
if (brs.Count > 0) {
@@ -653,7 +618,7 @@ namespace MonoDevelop.Debugger
IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null &&
!breakpoints.IsReadOnly) {
lock (breakpoints)
- info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0;
+ info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0;
} else {
info.Enabled = false;
}
@@ -721,7 +686,7 @@ namespace MonoDevelop.Debugger
var doc = IdeApp.Workbench.ActiveDocument;
try {
- DebuggingService.SetNextStatement (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column);
+ DebuggingService.SetNextStatement (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn);
} catch (Exception e) {
if (e is NotSupportedException || e.InnerException is NotSupportedException) {
MessageService.ShowError ("Unable to set the next statement to this location.");
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs
index 55cc770269..fb30399b30 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs
@@ -34,6 +34,7 @@ using MonoDevelop.Core.Execution;
using Mono.Debugging.Client;
using MonoDevelop.Ide.Gui;
using Mono.Debugging;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
@@ -44,103 +45,42 @@ namespace MonoDevelop.Debugger
return DebuggingService.CanDebugCommand (command);
}
- public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
+ public ProcessAsyncOperation Execute (ExecutionCommand command, OperationConsole console)
{
if (!CanExecute (command))
return null;
- DebugExecutionHandler h = new DebugExecutionHandler (null);
- return h.Execute (command, console);
+ return DebuggingService.Run (command, console);
}
}
-
- class DebugExecutionHandler: IProcessAsyncOperation
+
+ class DebugAsyncOperation: ProcessAsyncOperation
{
- bool done;
- ManualResetEvent stopEvent;
- DebuggerEngine factory;
-
- public DebugExecutionHandler (DebuggerEngine factory)
- {
- this.factory = factory;
- DebuggingService.StoppedEvent += new EventHandler (OnStopDebug);
- }
-
- public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
- {
- DebuggingService.InternalRun (command, factory, console);
- return this;
- }
-
- public void Cancel ()
+ TaskCompletionSource<int> taskSource;
+
+ public DebugAsyncOperation ()
{
- DebuggingService.Stop ();
+ taskSource = new TaskCompletionSource<int> ();
+ DebuggingService.StoppedEvent += OnStopDebug;
+ CancellationTokenSource = new CancellationTokenSource ();
+ CancellationTokenSource.Token.Register (DebuggingService.Stop);
+ Task = taskSource.Task;
}
-
- public void WaitForCompleted ()
+
+ public void Cleanup ()
{
- lock (this) {
- if (done) return;
- if (stopEvent == null)
- stopEvent = new ManualResetEvent (false);
+ if (taskSource != null) {
+ taskSource.SetResult (0);
+ taskSource = null;
}
- stopEvent.WaitOne ();
- }
-
- public int ExitCode {
- get { return 0; }
- }
-
- public bool IsCompleted {
- get { return done; }
- }
-
- public bool Success {
- get { return true; }
- }
-
- public bool SuccessWithWarnings {
- get { return true; }
+ DebuggingService.StoppedEvent -= OnStopDebug;
}
void OnStopDebug (object sender, EventArgs args)
{
- lock (this) {
- done = true;
- if (stopEvent != null)
- stopEvent.Set ();
- if (completedEvent != null)
- completedEvent (this);
- }
-
- DebuggingService.StoppedEvent -= new EventHandler (OnStopDebug);
- }
-
- event OperationHandler IAsyncOperation.Completed {
- add {
- bool raiseNow = false;
- lock (this) {
- if (done)
- raiseNow = true;
- else
- completedEvent += value;
- }
- if (raiseNow)
- value (this);
+ if (taskSource != null) {
+ taskSource.SetResult (0);
+ taskSource = null;
}
- remove {
- lock (this) {
- completedEvent -= value;
- }
- }
- }
-
- //FIXME:
- public int ProcessId {
- get { return -1; }
}
-
- event OperationHandler completedEvent;
-
- void IDisposable.Dispose () {}
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs
deleted file mode 100644
index 6bd1bcd4d8..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs
+++ /dev/null
@@ -1,281 +0,0 @@
-// DebugTextMarker.cs
-//
-// Authors: Lluis Sanchez Gual <lluis@novell.com>
-// Jeffrey Stedfast <jeff@xamarin.com>
-//
-// Copyright (c) 2008 Novell, Inc (http://www.novell.com)
-// Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//
-//
-
-using System;
-using System.Linq;
-
-using Mono.TextEditor;
-using Mono.TextEditor.Highlighting;
-
-using MonoDevelop.Components;
-
-using Xwt.Drawing;
-
-namespace MonoDevelop.Debugger
-{
- public abstract class DebugTextMarker : MarginMarker
- {
- protected DebugTextMarker (TextEditor editor)
- {
- Editor = editor;
- }
-
- protected abstract Cairo.Color BackgroundColor {
- get;
- }
-
- protected abstract Cairo.Color BorderColor {
- get;
- }
-
- protected Cairo.Color GetBorderColor (AmbientColor color)
- {
- if (color.HasBorderColor)
- return color.BorderColor;
- return color.Color;
- }
-
- protected TextEditor Editor {
- get; private set;
- }
-
- public override bool CanDrawBackground (Margin margin)
- {
- return margin is TextViewMargin;
- }
-
- public override bool CanDrawForeground (Margin margin)
- {
- return margin is IconMargin;
- }
-
- public override bool DrawBackground (TextEditor editor, Cairo.Context cr, double y, LineMetrics metrics)
- {
- // check, if a message bubble is active in that line.
- if (LineSegment != null && LineSegment.Markers.Any (m => m != this && (m is IExtendingTextLineMarker)))
- return false;
-
- var sidePadding = 4;
- var rounding = editor.LineHeight / 2 - 1;
-
- var d = metrics.TextRenderEndPosition - metrics.TextRenderStartPosition;
- if (d > 0) {
- cr.LineWidth = 1;
- cr.RoundedRectangle (metrics.TextRenderStartPosition, Math.Floor (y) + 0.5, d + sidePadding, metrics.LineHeight - 1, rounding);
- cr.SetSourceColor (BackgroundColor);
- cr.FillPreserve ();
- cr.SetSourceColor (BorderColor);
- cr.Stroke ();
- }
-
- return base.DrawBackground (editor, cr, y, metrics);
- }
-
- public override void DrawForeground (TextEditor editor, Cairo.Context cr, MarginDrawMetrics metrics)
- {
- double size = metrics.Margin.Width;
- double borderLineWidth = cr.LineWidth;
-
- double x = Math.Floor (metrics.Margin.XOffset - borderLineWidth / 2);
- double y = Math.Floor (metrics.Y + (metrics.Height - size) / 2);
-
- DrawMarginIcon (cr, x, y, size);
- }
-
- protected virtual void SetForegroundColor (ChunkStyle style)
- {
- }
-
- public override ChunkStyle GetStyle (ChunkStyle baseStyle)
- {
- if (baseStyle == null)
- return null;
-
- var style = new ChunkStyle (baseStyle);
- // style.Background = BackgroundColor;
- SetForegroundColor (style);
-
- return style;
- }
-
- protected void DrawImage (Cairo.Context cr, Image image, double x, double y, double size)
- {
- var deltaX = size / 2 - image.Width / 2 + 0.5f;
- var deltaY = size / 2 - image.Height / 2 + 0.5f;
-
- cr.DrawImage (Editor, image, Math.Round (x + deltaX), Math.Round (y + deltaY));
- }
-
- protected virtual void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- }
- }
-
- public class BreakpointTextMarker : DebugTextMarker
- {
- static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-15.png");
- static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-15.png");
-
- public BreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor)
- {
- IsTracepoint = tracepoint;
- }
-
- public bool IsTracepoint {
- get; private set;
- }
-
- protected override Cairo.Color BackgroundColor {
- get { return Editor.ColorStyle.BreakpointMarker.Color; }
- }
-
- protected override Cairo.Color BorderColor {
- get { return GetBorderColor (Editor.ColorStyle.BreakpointMarker); }
- }
-
- protected override void SetForegroundColor (ChunkStyle style)
- {
- style.Foreground = Editor.ColorStyle.BreakpointText.Foreground;
- }
-
- protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size);
- }
- }
-
- public class DisabledBreakpointTextMarker : DebugTextMarker
- {
- static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-disabled-15.png");
- static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-disabled-15.png");
-
- public DisabledBreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor)
- {
- IsTracepoint = tracepoint;
- }
-
- public bool IsTracepoint {
- get; private set;
- }
-
- protected override Cairo.Color BackgroundColor {
- get { return Editor.ColorStyle.BreakpointMarkerDisabled.Color; }
- }
-
- protected override Cairo.Color BorderColor {
- get { return GetBorderColor (Editor.ColorStyle.BreakpointMarkerDisabled); }
- }
-
- protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size);
- }
- }
-
- public class InvalidBreakpointTextMarker : DebugTextMarker
- {
- static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-invalid-15.png");
- static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-invalid-15.png");
-
- public InvalidBreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor)
- {
- IsTracepoint = tracepoint;
- }
-
- public bool IsTracepoint {
- get; private set;
- }
-
- protected override Cairo.Color BackgroundColor {
- get { return Editor.ColorStyle.BreakpointMarkerInvalid.Color; }
- }
-
- protected override Cairo.Color BorderColor {
- get { return GetBorderColor (Editor.ColorStyle.BreakpointMarkerInvalid); }
- }
-
- protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size);
- }
- }
-
- public class CurrentDebugLineTextMarker : DebugTextMarker
- {
- static readonly Image currentLine = Image.FromResource ("gutter-execution-15.png");
-
- public CurrentDebugLineTextMarker (TextEditor editor) : base (editor)
- {
- }
-
- protected override Cairo.Color BackgroundColor {
- get { return Editor.ColorStyle.DebuggerCurrentLineMarker.Color; }
- }
-
- protected override Cairo.Color BorderColor {
- get { return GetBorderColor (Editor.ColorStyle.DebuggerCurrentLineMarker); }
- }
-
- protected override void SetForegroundColor (ChunkStyle style)
- {
- style.Foreground = Editor.ColorStyle.DebuggerCurrentLine.Foreground;
- }
-
- protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- DrawImage (cr, currentLine, x, y, size);
- }
- }
-
- public class DebugStackLineTextMarker : DebugTextMarker
- {
- static readonly Image stackLine = Image.FromResource ("gutter-stack-15.png");
-
- public DebugStackLineTextMarker (TextEditor editor) : base (editor)
- {
- }
-
- protected override Cairo.Color BackgroundColor {
- get { return Editor.ColorStyle.DebuggerStackLineMarker.Color; }
- }
-
- protected override Cairo.Color BorderColor {
- get { return GetBorderColor (Editor.ColorStyle.DebuggerStackLineMarker); }
- }
-
- protected override void SetForegroundColor (ChunkStyle style)
- {
- style.Foreground = Editor.ColorStyle.DebuggerStackLine.Foreground;
- }
-
- protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size)
- {
- DrawImage (cr, stackLine, x, y, size);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs
index f67ee7864a..8c4e058e05 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs
@@ -30,6 +30,7 @@ using System.Collections.Generic;
using MonoDevelop.Ide;
using MonoDevelop.Components;
using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.Editor.Extension;
namespace MonoDevelop.Debugger
{
@@ -51,7 +52,7 @@ namespace MonoDevelop.Debugger
TextView.KeyReleaseEvent += OnEditKeyRelease;
TextView.FocusOutEvent += TextView_FocusOutEvent;
- IdeApp.Preferences.CustomOutputPadFontChanged += OnCustomOutputPadFontChanged;
+ IdeApp.Preferences.CustomOutputPadFont.Changed += OnCustomOutputPadFontChanged;
CompletionWindowManager.WindowClosed += OnCompletionWindowClosed;
}
@@ -274,7 +275,7 @@ namespace MonoDevelop.Debugger
if (keyHandled)
return;
- CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier);
+ CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier));
PopupCompletion ();
}
@@ -292,7 +293,7 @@ namespace MonoDevelop.Debugger
}
if (currentCompletionData != null) {
- if ((keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier)))
+ if ((keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier))))
return true;
}
@@ -331,6 +332,9 @@ namespace MonoDevelop.Debugger
int Position {
get { return Cursor.Offset - TokenBegin.Offset; }
+ set {
+ throw new NotSupportedException ();
+ }
}
#region ICompletionWidget implementation
@@ -370,6 +374,15 @@ namespace MonoDevelop.Debugger
get {
return Position;
}
+ set {
+ Position = value;
+ }
+ }
+
+ double ICompletionWidget.ZoomLevel {
+ get {
+ return 1;
+ }
}
char ICompletionWidget.GetChar (int offset)
@@ -457,7 +470,7 @@ namespace MonoDevelop.Debugger
protected override void OnDestroyed ()
{
- IdeApp.Preferences.CustomOutputPadFontChanged -= OnCustomOutputPadFontChanged;
+ IdeApp.Preferences.CustomOutputPadFont.Changed -= OnCustomOutputPadFontChanged;
CompletionWindowManager.WindowClosed -= OnCompletionWindowClosed;
CompletionWindowManager.HideWindow ();
TextView.FocusOutEvent -= TextView_FocusOutEvent;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
index 85c5ef476b..ec6d84fafd 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
@@ -26,6 +26,7 @@
using System;
using Mono.Debugging.Client;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using Xwt;
using MonoDevelop.Core;
@@ -36,7 +37,7 @@ namespace MonoDevelop.Debugger
{
DebuggerOptionsPanelWidget w;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
w = new DebuggerOptionsPanelWidget ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
index 3422b1cf87..22d0c1fc1f 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
@@ -38,8 +38,6 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Projects;
using MonoDevelop.Debugger.Viewers;
-using ICSharpCode.NRefactory.Semantics;
-using ICSharpCode.NRefactory.TypeSystem;
/*
* Some places we should be doing some error handling we used to toss
@@ -47,6 +45,8 @@ using ICSharpCode.NRefactory.TypeSystem;
*/
using MonoDevelop.Ide.TextEditing;
using System.Linq;
+using System.Threading.Tasks;
+using MonoDevelop.Ide.TypeSystem;
namespace MonoDevelop.Debugger
{
@@ -62,7 +62,8 @@ namespace MonoDevelop.Debugger
static readonly BreakpointStore breakpoints = new BreakpointStore ();
static readonly DebugExecutionHandlerFactory executionHandlerFactory;
- static IConsole console;
+ static OperationConsole console;
+ static IDisposable cancelRegistration;
static Dictionary<long, SourceLocation> nextStatementLocations = new Dictionary<long, SourceLocation> ();
static DebuggerEngine currentEngine;
@@ -72,10 +73,12 @@ namespace MonoDevelop.Debugger
static ExceptionCaughtMessage exceptionDialog;
- static BusyEvaluatorDialog busyDialog;
+ static BusyEvaluator busyEvaluator;
static StatusBarIcon busyStatusIcon;
static bool isBusy;
+ static DebugAsyncOperation currentDebugOperation = new DebugAsyncOperation ();
+
static public event EventHandler DebugSessionStarted;
static public event EventHandler PausedEvent;
static public event EventHandler ResumedEvent;
@@ -97,10 +100,7 @@ namespace MonoDevelop.Debugger
IdeApp.Workspace.StoringUserPreferences += OnStoreUserPrefs;
IdeApp.Workspace.LoadingUserPreferences += OnLoadUserPrefs;
IdeApp.Workspace.LastWorkspaceItemClosed += OnSolutionClosed;
- busyDialog = new BusyEvaluatorDialog ();
- busyDialog.Modal = true;
- busyDialog.TransientFor = MessageService.RootWindow;
- busyDialog.DestroyWithParent = true;
+ busyEvaluator = new BusyEvaluator ();
};
AddinManager.AddExtensionNodeHandler (FactoriesPath, delegate {
// Refresh the engines list
@@ -138,7 +138,8 @@ namespace MonoDevelop.Debugger
if (liveUpdate) {
var bp = new Breakpoint (watch.File, watch.Line);
bp.TraceExpression = "{" + watch.Expression + "}";
- bp.HitAction |= HitAction.PrintExpression;
+ bp.HitAction = HitAction.PrintExpression;
+ bp.NonUserBreakpoint = true;
lock (breakpoints)
breakpoints.Add (bp);
pinnedWatches.Bind (watch, bp);
@@ -378,10 +379,11 @@ namespace MonoDevelop.Debugger
session.ConnectionDialogCreator = delegate {
return new StatusBarConnectionDialog ();
};
+ currentDebugOperation = new DebugAsyncOperation ();
- console.CancelRequested += OnCancelRequested;
+ cancelRegistration = console.CancellationToken.Register (Stop);
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
if (DebugSessionStarted != null)
DebugSessionStarted (null, EventArgs.Empty);
NotifyLocationChanged ();
@@ -394,7 +396,7 @@ namespace MonoDevelop.Debugger
{
DebuggerSession currentSession;
StatusBarIcon currentIcon;
- IConsole currentConsole;
+ OperationConsole currentConsole;
lock (cleanup_lock) {
if (!IsDebugging)
@@ -423,13 +425,14 @@ namespace MonoDevelop.Debugger
currentSession.TypeResolverHandler = null;
currentSession.OutputWriter = null;
currentSession.LogWriter = null;
-
+ currentDebugOperation.Cleanup ();
+
if (currentConsole != null) {
- currentConsole.CancelRequested -= OnCancelRequested;
+ cancelRegistration.Dispose ();
currentConsole.Dispose ();
}
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
HideExceptionCaughtDialog ();
if (currentIcon != null) {
@@ -452,23 +455,23 @@ namespace MonoDevelop.Debugger
static void UnsetDebugLayout ()
{
// Dispatch synchronously to avoid start/stop races
- DispatchService.GuiSyncDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
IdeApp.Workbench.HideCommandBar ("Debug");
if (IdeApp.Workbench.CurrentLayout == "Debug") {
IdeApp.Workbench.CurrentLayout = oldLayout ?? "Solution";
}
oldLayout = null;
- });
+ }).Wait ();
}
static void SetDebugLayout ()
{
// Dispatch synchronously to avoid start/stop races
- DispatchService.GuiSyncDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
oldLayout = IdeApp.Workbench.CurrentLayout;
IdeApp.Workbench.CurrentLayout = "Debug";
IdeApp.Workbench.ShowCommandBar ("Debug");
- });
+ }).Wait ();
}
public static bool IsDebugging {
@@ -502,6 +505,7 @@ namespace MonoDevelop.Debugger
public static void Resume ()
{
+ Runtime.AssertMainThread ();
if (CheckIsBusy ())
return;
@@ -511,6 +515,7 @@ namespace MonoDevelop.Debugger
public static void RunToCursor (string fileName, int line, int column)
{
+ Runtime.AssertMainThread ();
if (CheckIsBusy ())
return;
@@ -523,6 +528,7 @@ namespace MonoDevelop.Debugger
public static void SetNextStatement (string fileName, int line, int column)
{
+ Runtime.AssertMainThread ();
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -533,14 +539,14 @@ namespace MonoDevelop.Debugger
NotifyLocationChanged ();
}
- public static IProcessAsyncOperation Run (string file, IConsole console)
+ public static ProcessAsyncOperation Run (string file, OperationConsole console)
{
- return Run (file, null, null, null, console);
+ var cmd = Runtime.ProcessService.CreateCommand (file);
+ return Run (cmd, console);
}
- public static IProcessAsyncOperation Run (string file, string args, string workingDir, IDictionary<string,string> envVars, IConsole console)
+ public static ProcessAsyncOperation Run (string file, string args, string workingDir, IDictionary<string,string> envVars, OperationConsole console)
{
- var h = new DebugExecutionHandler (null);
var cmd = Runtime.ProcessService.CreateCommand (file);
if (args != null)
cmd.Arguments = args;
@@ -548,24 +554,29 @@ namespace MonoDevelop.Debugger
cmd.WorkingDirectory = workingDir;
if (envVars != null)
cmd.EnvironmentVariables = envVars;
+ return Run (cmd, console);
+ }
- return h.Execute (cmd, console);
+ public static ProcessAsyncOperation Run (ExecutionCommand cmd, OperationConsole console, DebuggerEngine engine = null)
+ {
+ InternalRun (cmd, engine, console);
+ return currentDebugOperation;
}
- public static IAsyncOperation AttachToProcess (DebuggerEngine debugger, ProcessInfo proc)
+ public static AsyncOperation AttachToProcess (DebuggerEngine debugger, ProcessInfo proc)
{
currentEngine = debugger;
session = debugger.CreateSession ();
session.ExceptionHandler = ExceptionHandler;
- IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ();
- console = monitor as IConsole;
+ var monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ();
+ console = monitor.Console;
SetupSession ();
session.TargetExited += delegate {
monitor.Dispose ();
};
SetDebugLayout ();
session.AttachToProcess (proc, GetUserOptions ());
- return monitor.AsyncOperation;
+ return currentDebugOperation;
}
public static DebuggerSessionOptions GetUserOptions ()
@@ -610,7 +621,7 @@ namespace MonoDevelop.Debugger
DisassemblyRequested (null, EventArgs.Empty);
}
- internal static void InternalRun (ExecutionCommand cmd, DebuggerEngine factory, IConsole c)
+ internal static void InternalRun (ExecutionCommand cmd, DebuggerEngine factory, OperationConsole c)
{
if (factory == null) {
factory = GetFactoryForCommand (cmd);
@@ -623,7 +634,8 @@ namespace MonoDevelop.Debugger
DebuggerStartInfo startInfo = factory.CreateDebuggerStartInfo (cmd);
startInfo.UseExternalConsole = c is ExternalConsole;
- startInfo.CloseExternalConsoleOnExit = c.CloseOnDispose;
+ if (startInfo.UseExternalConsole)
+ startInfo.CloseExternalConsoleOnExit = ((ExternalConsole)c).CloseOnDispose;
currentEngine = factory;
session = factory.CreateSession ();
session.ExceptionHandler = ExceptionHandler;
@@ -631,7 +643,7 @@ namespace MonoDevelop.Debugger
// When using an external console, create a new internal console which will be used
// to show the debugger log
if (startInfo.UseExternalConsole)
- console = (IConsole) IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ();
+ console = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ().Console;
else
console = c;
@@ -671,19 +683,9 @@ namespace MonoDevelop.Debugger
static void DebugWriter (int level, string category, string message)
{
var logger = console;
- var debugLogger = logger as IDebugConsole;
- if (logger != null) {
- if (debugLogger != null) {
- debugLogger.Debug (level, category, message);
- } else {
- if (level == 0 && string.IsNullOrEmpty (category)) {
- logger.Log.Write (message);
- } else {
- logger.Log.Write (string.Format ("[{0}:{1}] {2}", level, category, message));
- }
- }
- }
+ if (logger != null)
+ logger.Debug (level, category, message);
}
static void OutputWriter (bool iserr, string text)
@@ -698,33 +700,37 @@ namespace MonoDevelop.Debugger
}
}
- static void OnBusyStateChanged (object s, BusyStateEventArgs args)
+ static async void OnBusyStateChanged (object s, BusyStateEventArgs args)
{
isBusy = args.IsBusy;
- DispatchService.GuiDispatch (delegate {
- busyDialog.UpdateBusyState (args);
+ await Runtime.RunInMainThread (delegate {
+ busyEvaluator.UpdateBusyState (args);
if (args.IsBusy) {
if (busyStatusIcon == null) {
- busyStatusIcon = IdeApp.Workbench.StatusBar.ShowStatusIcon (ImageService.GetIcon ("md-execute-debug", Gtk.IconSize.Menu));
+ busyStatusIcon = IdeApp.Workbench.StatusBar.ShowStatusIcon (ImageService.GetIcon ("md-bug", Gtk.IconSize.Menu));
busyStatusIcon.SetAlertMode (100);
busyStatusIcon.ToolTip = GettextCatalog.GetString ("The debugger runtime is not responding. You can wait for it to recover, or stop debugging.");
- busyStatusIcon.Clicked += delegate {
- MessageService.PlaceDialog (busyDialog, MessageService.RootWindow);
- };
+ busyStatusIcon.Clicked += OnBusyStatusIconClicked;
}
} else {
if (busyStatusIcon != null) {
+ busyStatusIcon.Clicked -= OnBusyStatusIconClicked;
busyStatusIcon.Dispose ();
busyStatusIcon = null;
}
}
});
}
+
+ static void OnBusyStatusIconClicked (object sender, StatusBarIconClickedEventArgs args)
+ {
+ MessageService.PlaceDialog (busyEvaluator.Dialog, MessageService.RootWindow);
+ }
static bool CheckIsBusy ()
{
- if (isBusy && !busyDialog.Visible)
- MessageService.PlaceDialog (busyDialog, MessageService.RootWindow);
+ if (isBusy && !busyEvaluator.Dialog.Visible)
+ MessageService.PlaceDialog (busyEvaluator.Dialog, MessageService.RootWindow);
return isBusy;
}
@@ -733,7 +739,7 @@ namespace MonoDevelop.Debugger
nextStatementLocations.Clear ();
currentBacktrace = null;
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
HideExceptionCaughtDialog ();
if (ResumedEvent != null)
ResumedEvent (null, a);
@@ -781,7 +787,7 @@ namespace MonoDevelop.Debugger
static void NotifyPaused ()
{
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
if (PausedEvent != null)
PausedEvent (null, EventArgs.Empty);
NotifyLocationChanged ();
@@ -792,7 +798,7 @@ namespace MonoDevelop.Debugger
static void NotifyException (TargetEventArgs args)
{
if (args.Type == TargetEventType.UnhandledException || args.Type == TargetEventType.ExceptionThrown) {
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
if (CurrentFrame != null) {
ShowExceptionCaughtDialog ();
}
@@ -802,6 +808,7 @@ namespace MonoDevelop.Debugger
static void NotifyLocationChanged ()
{
+ Runtime.AssertMainThread ();
if (ExecutionLocationChanged != null)
ExecutionLocationChanged (null, EventArgs.Empty);
}
@@ -820,11 +827,6 @@ namespace MonoDevelop.Debugger
CallStackChanged (null, EventArgs.Empty);
}
- static void OnCancelRequested (object sender, EventArgs args)
- {
- Stop ();
- }
-
public static void Stop ()
{
if (!IsDebugging)
@@ -836,6 +838,8 @@ namespace MonoDevelop.Debugger
public static void StepInto ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -845,6 +849,8 @@ namespace MonoDevelop.Debugger
public static void StepOver ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -854,6 +860,8 @@ namespace MonoDevelop.Debugger
public static void StepOut ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -907,7 +915,7 @@ namespace MonoDevelop.Debugger
set {
if (currentBacktrace != null && value < currentBacktrace.FrameCount) {
currentFrame = value;
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
NotifyCurrentFrameChanged ();
});
}
@@ -934,30 +942,32 @@ namespace MonoDevelop.Debugger
else
currentFrame = -1;
- DispatchService.GuiDispatch (delegate {
+ Runtime.RunInMainThread (delegate {
NotifyCallStackChanged ();
NotifyCurrentFrameChanged ();
NotifyLocationChanged ();
});
}
- public static void ShowCurrentExecutionLine ()
+ public static async void ShowCurrentExecutionLine ()
{
+ Runtime.AssertMainThread ();
if (currentBacktrace != null) {
var sf = GetCurrentVisibleFrame ();
if (sf != null && !string.IsNullOrEmpty (sf.SourceLocation.FileName) && System.IO.File.Exists (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1) {
- Document document = IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger);
+ Document document = await IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger);
OnDisableConditionalCompilation (new DocumentEventArgs (document));
}
}
}
- public static void ShowNextStatement ()
+ public static async void ShowNextStatement ()
{
+ Runtime.AssertMainThread ();
var location = NextStatementLocation;
if (location != null && System.IO.File.Exists (location.FileName)) {
- Document document = IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger);
+ Document document = await IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger);
OnDisableConditionalCompilation (new DocumentEventArgs (document));
} else {
ShowCurrentExecutionLine ();
@@ -1038,7 +1048,7 @@ namespace MonoDevelop.Debugger
args.Properties.SetValue ("MonoDevelop.Ide.DebuggingService.PinnedWatches", pinnedWatches);
}
- static void OnLoadUserPrefs (object s, UserPreferencesEventArgs args)
+ static Task OnLoadUserPrefs (object s, UserPreferencesEventArgs args)
{
var elem = args.Properties.GetValue<XmlElement> ("MonoDevelop.Ide.DebuggingService.Breakpoints") ?? args.Properties.GetValue<XmlElement> ("MonoDevelop.Ide.DebuggingService");
@@ -1053,6 +1063,8 @@ namespace MonoDevelop.Debugger
lock (breakpoints)
pinnedWatches.BindAll (breakpoints);
+
+ return Task.FromResult (true);
}
static void OnSolutionClosed (object s, EventArgs args)
@@ -1067,13 +1079,18 @@ namespace MonoDevelop.Debugger
if (doc != null) {
ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> ();
if (textEditorResolver != null) {
- var rr = textEditorResolver.GetLanguageItem (doc.Editor.Document.LocationToOffset (location.Line, 1), identifier);
- var ns = rr as NamespaceResolveResult;
+ var rr = textEditorResolver.GetLanguageItem (doc.Editor.LocationToOffset (location.Line, 1), identifier);
+ var ns = rr as Microsoft.CodeAnalysis.INamespaceSymbol;
if (ns != null)
- return ns.NamespaceName;
- var result = rr as TypeResolveResult;
- if (result != null && !result.IsError && !(result.Type.Kind == TypeKind.Dynamic && result.Type.FullName == "dynamic"))
- return result.Type.FullName;
+ return ns.ToDisplayString (Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat);
+ var result = rr as Microsoft.CodeAnalysis.INamedTypeSymbol;
+ if (result != null && !(result.TypeKind == Microsoft.CodeAnalysis.TypeKind.Dynamic && result.ToDisplayString (Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat) == "dynamic")) {
+ return result.ToDisplayString (new Microsoft.CodeAnalysis.SymbolDisplayFormat (
+ typeQualificationStyle: Microsoft.CodeAnalysis.SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces,
+ miscellaneousOptions:
+ Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.EscapeKeywordIdentifiers |
+ Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.UseSpecialTypes));
+ }
}
}
return null;
@@ -1107,7 +1124,7 @@ namespace MonoDevelop.Debugger
return SupportedFeatures != DebuggerFeatures.None;
}
- public IProcessAsyncOperation Execute (ExecutionCommand cmd, IConsole console)
+ public ProcessAsyncOperation Execute (ExecutionCommand cmd, OperationConsole console)
{
// Never called
throw new NotImplementedException ();
@@ -1128,10 +1145,9 @@ namespace MonoDevelop.Debugger
return engine.CanDebugCommand (command);
}
- public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
+ public ProcessAsyncOperation Execute (ExecutionCommand command, OperationConsole console)
{
- var h = new DebugExecutionHandler (engine);
- return h.Execute (command, console);
+ return DebuggingService.Run (command, console, engine);
}
}
@@ -1142,7 +1158,7 @@ namespace MonoDevelop.Debugger
public void SetMessage (DebuggerStartInfo dsi, string message, bool listening, int attemptNumber)
{
Gtk.Application.Invoke (delegate {
- IdeApp.Workbench.StatusBar.ShowMessage (Stock.StatusConnecting, message);
+ IdeApp.Workbench.StatusBar.ShowMessage (Ide.Gui.Stock.StatusConnecting, message);
});
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
index 890d216812..fbd0d511a3 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
@@ -35,20 +35,19 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Commands;
-using TextEditor = Mono.TextEditor.TextEditor;
-using Mono.TextEditor;
using Mono.Debugging.Client;
-using Mono.TextEditor.Highlighting;
+using MonoDevelop.Ide.Editor;
using Gtk;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide;
using System.Security.Cryptography;
using Gdk;
using MonoDevelop.Components;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
- public class DisassemblyView: AbstractViewContent, IClipboardHandler
+ public class DisassemblyView: ViewContent, IClipboardHandler
{
Gtk.ScrolledWindow sw;
TextEditor editor;
@@ -56,10 +55,10 @@ namespace MonoDevelop.Debugger
int lastLine;
Dictionary<string,int> addressLines = new Dictionary<string,int> ();
bool autoRefill;
- CurrentDebugLineTextMarker currentDebugLineMarker;
+ ICurrentDebugLineTextMarker currentDebugLineMarker;
bool dragging;
FilePath currentFile;
- AsmLineMarker asmMarker = new AsmLineMarker ();
+ ITextLineMarker asmMarker;
List<AssemblyLine> cachedLines = new List<AssemblyLine> ();
string cachedLinesAddrSpace;
@@ -70,12 +69,11 @@ namespace MonoDevelop.Debugger
{
ContentName = GettextCatalog.GetString ("Disassembly");
sw = new Gtk.ScrolledWindow ();
- editor = new TextEditor ();
- editor.Document.ReadOnly = true;
-
- editor.Options = new CommonTextEditorOptions {
- ShowLineNumberMargin = false,
- };
+ editor = TextEditorFactory.CreateNewEditor ();
+ editor.IsReadOnly = true;
+ asmMarker = TextMarkerFactory.CreateAsmLineMarker (editor);
+
+ editor.Options = DefaultSourceEditorOptions.PlainEditor;
sw.Add (editor);
sw.HscrollbarPolicy = Gtk.PolicyType.Automatic;
@@ -88,27 +86,26 @@ namespace MonoDevelop.Debugger
sw.ShadowType = Gtk.ShadowType.In;
sw.Sensitive = false;
-
- currentDebugLineMarker = new CurrentDebugLineTextMarker (editor);
+
DebuggingService.StoppedEvent += OnStop;
}
-
- OverlayMessageWindow messageOverlayWindow;
+ HBox messageOverlayContent;
void ShowLoadSourceFile (StackFrame sf)
{
- if (messageOverlayWindow != null) {
- messageOverlayWindow.Destroy ();
- messageOverlayWindow = null;
+ if (messageOverlayContent != null) {
+ editor.RemoveOverlay (messageOverlayContent);
+ messageOverlayContent = null;
}
- messageOverlayWindow = new OverlayMessageWindow ();
+ messageOverlayContent = new HBox ();
var hbox = new HBox ();
hbox.Spacing = 8;
var label = new Label (string.Format ("{0} not found. Find source file at alternative location.", Path.GetFileName (sf.SourceLocation.FileName)));
hbox.TooltipText = sf.SourceLocation.FileName;
- var color = (HslColor)editor.ColorStyle.NotificationText.Foreground;
+
+ var color = (HslColor)editor.Options.GetColorStyle ().NotificationText.Foreground;
label.ModifyFg (StateType.Normal, color);
int w, h;
@@ -119,13 +116,10 @@ namespace MonoDevelop.Debugger
openButton.WidthRequest = 60;
hbox.PackEnd (openButton, false, false, 0);
- var container = new HBox ();
const int containerPadding = 8;
- container.PackStart (hbox, true, true, containerPadding);
- messageOverlayWindow.Child = container;
- messageOverlayWindow.ShowOverlay (editor);
+ messageOverlayContent.PackStart (hbox, true, true, containerPadding);
+ editor.AddOverlay (messageOverlayContent,() => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2);
- messageOverlayWindow.SizeFunc = () => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2;
openButton.Clicked += delegate {
var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), MonoDevelop.Components.FileChooserAction.Open) {
TransientFor = IdeApp.Workbench.RootWindow,
@@ -161,15 +155,11 @@ namespace MonoDevelop.Debugger
}
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
return sw;
}
}
-
- public override void Load (string fileName)
- {
- }
public override bool IsFile {
get {
@@ -180,13 +170,15 @@ namespace MonoDevelop.Debugger
public void Update ()
{
autoRefill = false;
-
- editor.Document.RemoveMarker (currentDebugLineMarker);
+ if (currentDebugLineMarker != null) {
+ editor.RemoveMarker (currentDebugLineMarker);
+ currentDebugLineMarker = null;
+ }
if (DebuggingService.CurrentFrame == null) {
- if (messageOverlayWindow != null) {
- messageOverlayWindow.Destroy ();
- messageOverlayWindow = null;
+ if (messageOverlayContent != null) {
+ editor.RemoveOverlay (messageOverlayContent);
+ messageOverlayContent = null;
}
sw.Sensitive = false;
return;
@@ -197,9 +189,9 @@ namespace MonoDevelop.Debugger
if (!string.IsNullOrWhiteSpace (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1 && sf.SourceLocation.FileHash != null) {
ShowLoadSourceFile (sf);
} else {
- if (messageOverlayWindow != null) {
- messageOverlayWindow.Destroy ();
- messageOverlayWindow = null;
+ if (messageOverlayContent != null) {
+ editor.RemoveOverlay (messageOverlayContent);
+ messageOverlayContent = null;
}
}
if (!string.IsNullOrEmpty (sf.SourceLocation.FileName) && File.Exists (sf.SourceLocation.FileName))
@@ -223,7 +215,7 @@ namespace MonoDevelop.Debugger
}
currentFile = sf.SourceLocation.FileName;
addressLines.Clear ();
- editor.Document.Text = string.Empty;
+ editor.Text = string.Empty;
StreamReader sr = new StreamReader (sf.SourceLocation.FileName);
string line;
int sourceLine = 1;
@@ -239,9 +231,9 @@ namespace MonoDevelop.Debugger
}
sourceLine++;
}
- editor.Document.Text = sb.ToString ();
+ editor.Text = sb.ToString ();
foreach (int li in asmLineNums)
- editor.Document.AddMarker (li, asmMarker);
+ editor.AddMarker (li, asmMarker);
}
int aline;
if (!addressLines.TryGetValue (GetAddrId (sf.Address, sf.AddressSpace), out aline))
@@ -287,8 +279,8 @@ namespace MonoDevelop.Debugger
firstLine = -150;
lastLine = 150;
- editor.Document.MimeType = "text/plain";
- editor.Document.Text = string.Empty;
+ editor.MimeType = "text/plain";
+ editor.Text = string.Empty;
InsertLines (0, firstLine, lastLine, out firstLine, out lastLine);
autoRefill = true;
@@ -298,19 +290,23 @@ namespace MonoDevelop.Debugger
void UpdateCurrentLineMarker (bool moveCaret)
{
- editor.Document.RemoveMarker (currentDebugLineMarker);
+ if (currentDebugLineMarker != null) {
+ editor.RemoveMarker (currentDebugLineMarker);
+ currentDebugLineMarker = null;
+ }
StackFrame sf = DebuggingService.CurrentFrame;
int line;
if (addressLines.TryGetValue (GetAddrId (sf.Address, sf.AddressSpace), out line)) {
- editor.Document.AddMarker (line, currentDebugLineMarker);
+ var docLine = editor.GetLine (line);
+ currentDebugLineMarker = TextMarkerFactory.CreateCurrentDebugLineTextMarker (editor, docLine.Offset, docLine.Length);
+ editor.AddMarker (line, currentDebugLineMarker);
if (moveCaret) {
- editor.Caret.Line = line;
+ editor.CaretLine = line;
GLib.Timeout.Add (100, delegate {
editor.CenterToCaret ();
return false;
});
}
- editor.QueueDraw ();
}
}
@@ -332,8 +328,9 @@ namespace MonoDevelop.Debugger
if (!autoRefill || dragging)
return;
- DocumentLocation loc = editor.PointToLocation (0, 0);
- DocumentLocation loc2 = editor.PointToLocation (0, editor.Allocation.Height);
+ var loc = editor.PointToLocation (0, 0);
+ Gtk.Widget widget = editor;
+ var loc2 = editor.PointToLocation (0, widget.Allocation.Height);
//bool moveCaret = editor.Caret.Line >= loc.Line && editor.Caret.Line <= loc2.Line;
if (firstLine != int.MinValue && loc.Line < FillMarginLines) {
@@ -348,17 +345,17 @@ namespace MonoDevelop.Debugger
addressLines = newLines;
//if (moveCaret)
- editor.Caret.Line += num;
+ editor.CaretLine += num;
double hinc = num * editor.LineHeight;
sw.Vadjustment.Value += hinc;
UpdateCurrentLineMarker (false);
}
- if (lastLine != int.MinValue && loc2.Line >= editor.Document.LineCount - FillMarginLines) {
- int num = (loc2.Line - (editor.Document.LineCount - FillMarginLines) + 1) * 2;
+ if (lastLine != int.MinValue && loc2.Line >= editor.LineCount - FillMarginLines) {
+ int num = (loc2.Line - (editor.LineCount - FillMarginLines) + 1) * 2;
int newFirst;
- InsertLines (editor.Document.TextLength, lastLine + 1, lastLine + num, out newFirst, out lastLine);
+ InsertLines (editor.Length, lastLine + 1, lastLine + num, out newFirst, out lastLine);
}
}
@@ -383,15 +380,16 @@ namespace MonoDevelop.Debugger
lines.RemoveRange (j + 1, lines.Count - j - 1);
int lineCount = 0;
- int editorLine = editor.GetTextEditorData ().OffsetToLineNumber (offset);
+ int editorLine = editor.OffsetToLineNumber (offset);
foreach (AssemblyLine li in lines) {
if (li.IsOutOfRange)
continue;
InsertAssemblerLine (sb, editorLine++, li);
lineCount++;
}
- editor.Insert (offset, sb.ToString ());
- editor.Document.CommitUpdateAll ();
+ editor.IsReadOnly = false;
+ editor.InsertText (offset, sb.ToString ());
+ editor.IsReadOnly = true;
if (offset == 0)
this.cachedLines.InsertRange (0, lines);
else
@@ -403,13 +401,13 @@ namespace MonoDevelop.Debugger
{
addressLines.Clear ();
currentFile = null;
- if (messageOverlayWindow != null) {
- messageOverlayWindow.Destroy ();
- messageOverlayWindow = null;
+ if (messageOverlayContent != null) {
+ editor.RemoveOverlay (messageOverlayContent);
+ messageOverlayContent = null;
}
sw.Sensitive = false;
autoRefill = false;
- editor.Document.Text = string.Empty;
+ editor.Text = string.Empty;
cachedLines.Clear ();
}
@@ -453,7 +451,7 @@ namespace MonoDevelop.Debugger
void IClipboardHandler.Copy ()
{
- editor.RunAction (ClipboardActions.Copy);
+ editor.EditorActionHost.ClipboardCopy ();
}
void IClipboardHandler.Paste ()
@@ -468,7 +466,7 @@ namespace MonoDevelop.Debugger
void IClipboardHandler.SelectAll ()
{
- editor.RunAction (SelectionActions.SelectAll);
+ editor.EditorActionHost.SelectAll ();
}
bool IClipboardHandler.EnableCut {
@@ -476,7 +474,7 @@ namespace MonoDevelop.Debugger
}
bool IClipboardHandler.EnableCopy {
- get { return !editor.SelectionRange.IsEmpty; }
+ get { return !editor.IsSomethingSelected; }
}
bool IClipboardHandler.EnablePaste {
@@ -493,107 +491,4 @@ namespace MonoDevelop.Debugger
#endregion
}
-
- class AsmLineMarker: TextLineMarker
- {
- public override ChunkStyle GetStyle (ChunkStyle baseStyle)
- {
- ChunkStyle st = new ChunkStyle (baseStyle);
- st.Foreground = new Cairo.Color (125, 125, 125);
- return st;
- }
- }
-
- //Copy pasted from SourceEditor
- class OverlayMessageWindow : Gtk.EventBox
- {
- const int border = 8;
-
- public Func<int> SizeFunc;
-
- TextEditor textEditor;
-
- public OverlayMessageWindow ()
- {
- AppPaintable = true;
- }
-
- public void ShowOverlay (TextEditor textEditor)
- {
- this.textEditor = textEditor;
- this.ShowAll ();
- textEditor.AddTopLevelWidget (this, 0, 0);
- textEditor.SizeAllocated += HandleSizeAllocated;
- var child = (TextEditor.EditorContainerChild)textEditor [this];
- child.FixedPosition = true;
- }
-
- protected override void OnDestroyed ()
- {
- base.OnDestroyed ();
- if (textEditor != null) {
- textEditor.SizeAllocated -= HandleSizeAllocated;
- textEditor = null;
- }
- }
-
- protected override void OnSizeRequested (ref Requisition requisition)
- {
- base.OnSizeRequested (ref requisition);
-
- if (wRequest > 0) {
- requisition.Width = wRequest;
- }
- }
-
- protected override void OnSizeAllocated (Gdk.Rectangle allocation)
- {
- base.OnSizeAllocated (allocation);
- Resize (allocation);
- }
-
- int wRequest = -1;
-
- void HandleSizeAllocated (object o, Gtk.SizeAllocatedArgs args)
- {
- if (SizeFunc != null) {
- var req = Math.Min (SizeFunc (), textEditor.Allocation.Width - border * 2);
- if (req != wRequest) {
- wRequest = req;
- QueueResize ();
- }
- } else {
- if (Allocation.Width > textEditor.Allocation.Width - border * 2) {
- if (textEditor.Allocation.Width - border * 2 > 0) {
- QueueResize ();
- }
- }
- }
- Resize (Allocation);
- }
-
- void Resize (Gdk.Rectangle alloc)
- {
- textEditor.MoveTopLevelWidget (this, (textEditor.Allocation.Width - alloc.Width) / 2, textEditor.Allocation.Height - alloc.Height - 8);
- }
-
- protected override bool OnExposeEvent (Gdk.EventExpose evnt)
- {
- using (var cr = CairoHelper.Create (evnt.Window)) {
- cr.LineWidth = 1;
- cr.Rectangle (0, 0, Allocation.Width, Allocation.Height);
- cr.SetSourceColor (textEditor.ColorStyle.NotificationText.Background);
- cr.Fill ();
- cr.RoundedRectangle (0, 0, Allocation.Width, Allocation.Height, 3);
- cr.SetSourceColor (textEditor.ColorStyle.NotificationText.Background);
- cr.FillPreserve ();
-
- cr.SetSourceColor (textEditor.ColorStyle.NotificationBorder.Color);
- cr.Stroke ();
- }
-
- return base.OnExposeEvent (evnt);
- }
-
- }
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
index 779c3da033..da38a4f745 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
@@ -38,12 +38,12 @@ using MonoDevelop.Core;
using MonoDevelop.Components;
using MonoDevelop.Ide.TextEditing;
using MonoDevelop.Ide.Gui.Content;
-using Mono.TextEditor;
+using MonoDevelop.Ide.Editor.Extension;
using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.Debugger
{
- class ExceptionCaughtDialog : Dialog
+ class ExceptionCaughtDialog : Gtk.Dialog
{
static readonly Xwt.Drawing.Image WarningIconPixbuf = Xwt.Drawing.Image.FromResource ("toolbar-icon.png");
static readonly Xwt.Drawing.Image WarningIconPixbufInner = Xwt.Drawing.Image.FromResource ("exception-outline-16.png");
@@ -74,6 +74,7 @@ namespace MonoDevelop.Debugger
public ExceptionCaughtDialog (ExceptionInfo ex, ExceptionCaughtMessage msg)
{
this.Name = "wizard_dialog";
+ this.ApplyTheme ();
selected = exception = ex;
message = msg;
@@ -132,6 +133,7 @@ namespace MonoDevelop.Debugger
{
ExceptionValueTreeView = new ObjectValueTreeView ();
ExceptionValueTreeView.Frame = DebuggingService.CurrentFrame;
+ ExceptionValueTreeView.ModifyBase (StateType.Normal, Styles.ExceptionCaughtDialog.TreeBackgroundColor.ToGdkColor ());
ExceptionValueTreeView.AllowPopupMenu = false;
ExceptionValueTreeView.AllowExpanding = true;
ExceptionValueTreeView.AllowPinning = false;
@@ -794,7 +796,7 @@ namespace MonoDevelop.Debugger
dlg.Line = Line;
}
- public override Widget CreateWidget ()
+ public override Control CreateWidget ()
{
var icon = Xwt.Drawing.Image.FromResource ("lightning-16.png");
var image = new Xwt.ImageView (icon).ToGtkWidget ();
@@ -888,7 +890,7 @@ namespace MonoDevelop.Debugger
dlg.Line = Line;
}
- public override Widget CreateWidget ()
+ public override Control CreateWidget ()
{
var box = new EventBox ();
box.VisibleWindow = false;
@@ -908,17 +910,17 @@ namespace MonoDevelop.Debugger
class ExceptionCaughtTextEditorExtension : TextEditorExtension
{
- public override bool KeyPress (Gdk.Key key, char keyChar, Gdk.ModifierType modifier)
+ public override bool KeyPress (KeyDescriptor descriptor)
{
- if (key == Gdk.Key.Escape && DebuggingService.ExceptionCaughtMessage != null &&
+ if (descriptor.SpecialKey == SpecialKey.Escape && DebuggingService.ExceptionCaughtMessage != null &&
!DebuggingService.ExceptionCaughtMessage.IsMinimized &&
- DebuggingService.ExceptionCaughtMessage.File.CanonicalPath == Document.FileName.CanonicalPath) {
+ DebuggingService.ExceptionCaughtMessage.File.CanonicalPath == new FilePath(DocumentContext.Name).CanonicalPath) {
DebuggingService.ExceptionCaughtMessage.ShowMiniButton ();
return true;
}
- return base.KeyPress (key, keyChar, modifier);
+ return base.KeyPress (descriptor);
}
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs
index 2a2f7e93dd..f35088bf82 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs
@@ -28,6 +28,7 @@
using System;
using MonoDevelop.Ide.CodeCompletion;
using Gtk;
+using MonoDevelop.Ide.Editor.Extension;
namespace MonoDevelop.Debugger
{
@@ -112,7 +113,7 @@ namespace MonoDevelop.Debugger
if (keyHandled)
return;
- CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier);
+ CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier));
PopupCompletion ((Entry) sender);
}
@@ -131,7 +132,7 @@ namespace MonoDevelop.Debugger
}
if (currentCompletionData != null)
- args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier);
+ args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier));
}
void OnEditFocusOut (object sender, FocusOutEventArgs args)
@@ -181,6 +182,9 @@ namespace MonoDevelop.Debugger
get {
return entry.Position;
}
+ set {
+ entry.Position = value;
+ }
}
char ICompletionWidget.GetChar (int offset)
@@ -255,6 +259,12 @@ namespace MonoDevelop.Debugger
return entry.Style;
}
}
+
+ double ICompletionWidget.ZoomLevel {
+ get {
+ return 1;
+ }
+ }
#endregion
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs
index 8ce3fe3f98..c1a7fac6ae 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs
@@ -32,6 +32,7 @@ using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
using System.Collections.Generic;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
@@ -39,50 +40,51 @@ namespace MonoDevelop.Debugger
{
public static bool CanDebug (this ProjectOperations opers, IBuildTarget entry)
{
- ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget);
+ ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget);
return opers.CanExecute (entry, context);
}
- public static IAsyncOperation Debug (this ProjectOperations opers, IBuildTarget entry)
+ public static AsyncOperation Debug (this ProjectOperations opers, IBuildTarget entry, bool buildBeforeExecuting = true)
{
if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted)
return opers.CurrentRunOperation;
- ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget);
+ ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget);
- IAsyncOperation op = opers.Execute (entry, context);
+ AsyncOperation op = opers.Execute (entry, context, buildBeforeExecuting);
return op;
}
public static bool CanDebugFile (this ProjectOperations opers, string file)
{
- var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget);
+ var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget);
return opers.CanExecuteFile (file, context);
}
- public static IAsyncOperation DebugFile (this ProjectOperations opers, string file)
+ public static AsyncOperation DebugFile (this ProjectOperations opers, string file)
{
- var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget);
+ var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget);
return opers.ExecuteFile (file, context);
}
- public static IAsyncOperation DebugApplication (this ProjectOperations opers, string executableFile, string args, string workingDir, IDictionary<string,string> envVars)
+ public static AsyncOperation DebugApplication (this ProjectOperations opers, string executableFile, string args, string workingDir, IDictionary<string,string> envVars)
{
if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted)
return opers.CurrentRunOperation;
var monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ();
- var oper = DebuggingService.Run (executableFile, args, workingDir, envVars, (IConsole) monitor);
- oper.Completed += delegate {
+ var oper = DebuggingService.Run (executableFile, args, workingDir, envVars, monitor.Console);
+ opers.CurrentRunOperation = oper;
+
+ oper.Task.ContinueWith (t => {
monitor.Dispose ();
- };
+ });
- opers.CurrentRunOperation = monitor.AsyncOperation;
- return opers.CurrentRunOperation;
+ return oper;
}
- public static IAsyncOperation AttachToProcess (this ProjectOperations opers, DebuggerEngine debugger, ProcessInfo proc)
+ public static AsyncOperation AttachToProcess (this ProjectOperations opers, DebuggerEngine debugger, ProcessInfo proc)
{
if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted)
return opers.CurrentRunOperation;
@@ -92,15 +94,5 @@ namespace MonoDevelop.Debugger
opers.CurrentRunOperation = oper;
return opers.CurrentRunOperation;
}
-
- public static IAsyncOperation Debug (this Document doc)
- {
- return IdeApp.ProjectOperations.DebugFile (doc.FileName);
- }
-
- public static bool CanDebug (this Document doc)
- {
- return doc.FileName != FilePath.Null && IdeApp.ProjectOperations.CanDebugFile (doc.FileName);
- }
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs
index 5844aa54ae..a2009111f0 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs
@@ -26,13 +26,33 @@
using System;
-using Mono.TextEditor;
using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Editor;
+using System.Threading.Tasks;
+using Microsoft.CodeAnalysis.Text;
+using System.Threading;
namespace MonoDevelop.Debugger
{
+ public struct DebugDataTipInfo
+ {
+ public readonly TextSpan Span;
+ public readonly string Text;
+
+ public DebugDataTipInfo (TextSpan span, string text)
+ {
+ this.Span = span;
+ this.Text = text;
+ }
+
+ public bool IsDefault
+ {
+ get { return Span.Length == 0 && Span.Start == 0 && Text == null; }
+ }
+ }
+
public interface IDebuggerExpressionResolver
{
- string ResolveExpression (TextEditorData editor, Document doc, int offset, out int startOffset);
+ Task<DebugDataTipInfo> ResolveExpressionAsync (IReadonlyTextDocument editor, DocumentContext doc, int offset, CancellationToken cancellationToken);
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
index dd5ac17ce9..1b5489e8f8 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
@@ -37,13 +37,13 @@ using MonoDevelop.Components;
namespace MonoDevelop.Debugger
{
- public class ImmediatePad: IPadContent
+ public class ImmediatePad: PadContent
{
static readonly object mutex = new object();
DebuggerConsoleView view;
readonly List<uint> timersList = new List<uint>();
- public void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
view = new DebuggerConsoleView ();
view.ConsoleInput += OnViewConsoleInput;
@@ -263,21 +263,18 @@ namespace MonoDevelop.Debugger
});
}
- public void RedrawContent ()
- {
- }
-
- public Gtk.Widget Control {
+ public override Control Control {
get {
return view;
}
}
- public void Dispose ()
+ public override void Dispose ()
{
DebuggingService.PausedEvent -= DebuggerPaused;
DebuggingService.ResumedEvent -= DebuggerResumed;
DebuggingService.StoppedEvent -= DebuggerStopped;
+ base.Dispose ();
}
void DebuggerResumed (object sender, EventArgs e)
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs
index ca2cebd26b..882f54980b 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs
@@ -1,33 +1,34 @@
-//
-// InfoFrame.cs
-//
-// Author:
-// Jeffrey Stedfast <jeff@xamarin.com>
-//
-// Copyright (c) 2013 Xamarin Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
+//
+// InfoFrame.cs
+//
+// Author:
+// Jeffrey Stedfast <jeff@xamarin.com>
+//
+// Copyright (c) 2013 Xamarin Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
using System;
using Gtk;
-
+using MonoDevelop.Components;
+
namespace MonoDevelop.Debugger
{
[System.ComponentModel.ToolboxItem (true)]
@@ -49,10 +50,10 @@ namespace MonoDevelop.Debugger
cr.Rectangle (Allocation.X, Allocation.Y, Allocation.Width, Allocation.Height);
cr.ClipPreserve ();
- cr.SetSourceRGB (1.00, 0.98, 0.91);
+ cr.SetSourceColor (Styles.ExceptionCaughtDialog.InfoFrameBackgroundColor.ToCairoColor ());
cr.FillPreserve ();
- cr.SetSourceRGB (0.87, 0.83, 0.74);
+ cr.SetSourceColor (Styles.ExceptionCaughtDialog.InfoFrameBorderColor.ToCairoColor ());
cr.LineWidth = 2;
cr.Stroke ();
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs
index 530207a977..34a83ac4ab 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs
@@ -126,8 +126,10 @@ namespace MonoDevelop.Debugger
if (!sf.IsExternalCode &&
sf.SourceLocation.Line != -1 &&
!string.IsNullOrEmpty (sf.SourceLocation.FileName) &&
- //Uncomment condition below once logic for ProjectOnlyCode in runtime is fixed
- (/*DebuggingService.CurrentSessionSupportsFeature (DebuggerFeatures.Disassembly) ||*/ System.IO.File.Exists (sf.SourceLocation.FileName))) {
+ //Uncomment condition below once logic for ProjectOnlyCode in runtime is fixed
+ (/*DebuggingService.CurrentSessionSupportsFeature (DebuggerFeatures.Disassembly) ||*/
+ System.IO.File.Exists (sf.SourceLocation.FileName) ||
+ SourceCodeLookup.FindSourceFile (sf.SourceLocation.FileName, sf.SourceLocation.FileHash).IsNotNull)) {
if (n != DebuggingService.CurrentFrameIndex)
DebuggingService.CurrentFrameIndex = n;
break;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs
index feb6d9c0c3..e0c66098b2 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs
@@ -49,7 +49,7 @@ namespace MonoDevelop.Debugger
if (frame == null)
return;
- tree.ClearAll ();
+ tree.ClearValues ();
tree.AddValues (frame.GetAllLocals ().Where (l => !string.IsNullOrWhiteSpace (l.Name) && l.Name != "?").ToArray ());
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
index 1a5f3dcf5e..eb6217ecec 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
@@ -29,20 +29,20 @@ using System;
using Gtk;
using MonoDevelop.Ide.Gui;
using Mono.Debugging.Client;
+using MonoDevelop.Components;
namespace MonoDevelop.Debugger
{
- public class ObjectValuePad: IPadContent
+ public class ObjectValuePad: PadContent
{
protected ObjectValueTreeView tree;
readonly ScrolledWindow scrolled;
bool needsUpdate;
- IPadWindow container;
bool initialResume;
StackFrame lastFrame;
PadFontChanger fontChanger;
- public Gtk.Widget Control {
+ public override Control Control {
get {
return scrolled;
}
@@ -76,7 +76,7 @@ namespace MonoDevelop.Debugger
initialResume = !DebuggingService.IsDebugging;
}
- public void Dispose ()
+ public override void Dispose ()
{
if (fontChanger == null)
return;
@@ -88,21 +88,17 @@ namespace MonoDevelop.Debugger
DebuggingService.ResumedEvent -= OnDebuggerResumed;
DebuggingService.StoppedEvent -= OnDebuggerStopped;
DebuggingService.EvaluationOptionsChanged -= OnEvaluationOptionsChanged;
+ base.Dispose ();
}
- public void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
- this.container = container;
container.PadContentShown += delegate {
if (needsUpdate)
OnUpdateList ();
};
}
- public void RedrawContent ()
- {
- }
-
public virtual void OnUpdateList ()
{
needsUpdate = false;
@@ -113,7 +109,7 @@ namespace MonoDevelop.Debugger
protected virtual void OnFrameChanged (object s, EventArgs a)
{
- if (container != null && container.ContentVisible)
+ if (Window != null && Window.ContentVisible)
OnUpdateList ();
else
needsUpdate = true;
@@ -144,7 +140,7 @@ namespace MonoDevelop.Debugger
{
if (!DebuggingService.IsRunning) {
lastFrame = null;
- if (container != null && container.ContentVisible)
+ if (Window != null && Window.ContentVisible)
OnUpdateList ();
else
needsUpdate = true;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
index da3940e4b1..5a864961fd 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
@@ -39,9 +39,9 @@ using MonoDevelop.Ide;
using MonoDevelop.Ide.CodeCompletion;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Commands;
-using Mono.TextEditor;
+using MonoDevelop.Ide.Editor.Extension;
using System.Linq;
-
+using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.Debugger
{
@@ -90,10 +90,6 @@ namespace MonoDevelop.Debugger
readonly TreeViewColumn typeCol;
readonly TreeViewColumn pinCol;
- const string errorColor = "red";
- const string modifiedColor = "blue";
- const string disabledColor = "gray";
-
static readonly CommandEntrySet menuSet;
const int NameColumn = 0;
@@ -168,7 +164,7 @@ namespace MonoDevelop.Debugger
if (!icon.IsNull) {
using (var ctx = Gdk.CairoHelper.Create (window)) {
using (var layout = new Pango.Layout (widget.PangoContext)) {
- layout.FontDescription = FontDesc.Copy ();
+ layout.FontDescription = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11);
layout.FontDescription.Family = Family;
layout.SetText (Text);
int w, h;
@@ -192,7 +188,7 @@ namespace MonoDevelop.Debugger
Uri uri;
if (value != null && Uri.TryCreate (value.Trim ('"', '{', '}'), UriKind.Absolute, out uri) && (uri.Scheme == "http" || uri.Scheme == "https")) {
Underline = Pango.Underline.Single;
- Foreground = "#197CEF";
+ Foreground = Ide.Gui.Styles.LinkForegroundColor.ToHexString (false);
} else {
Underline = Pango.Underline.None;
}
@@ -256,9 +252,9 @@ namespace MonoDevelop.Debugger
cell_area.Height - TopBottomPadding * 2 - 1,
(cell_area.Height - (TopBottomPadding * 2)) / 2);
cr.LineWidth = 1;
- cr.SetSourceRGB (233 / 255.0, 242 / 255.0, 252 / 255.0);
+ cr.SetSourceColor (Styles.ObjectValueTreeValuesButtonBackground.ToCairoColor ());
cr.FillPreserve ();
- cr.SetSourceRGB (82 / 255.0, 148 / 255.0, 235 / 255.0);
+ cr.SetSourceColor (Styles.ObjectValueTreeValuesButtonBorder.ToCairoColor ());
cr.Stroke ();
int YOffset = (cell_area.Height - h) / 2;
@@ -267,7 +263,7 @@ namespace MonoDevelop.Debugger
window.DrawLayoutWithColors (widget.Style.TextGC (StateType.Normal),
cell_area.X + (cell_area.Height - TopBottomPadding * 2 + 1) / 2 + xpad,
cell_area.Y + YOffset,
- layout, new Gdk.Color (82, 148, 235), new Gdk.Color (233, 242, 252));
+ layout, Styles.ObjectValueTreeValuesButtonText.ToGdkColor(), Styles.ObjectValueTreeValuesButtonBackground.ToGdkColor());
}
}
}
@@ -302,11 +298,10 @@ namespace MonoDevelop.Debugger
Selection.Mode = Gtk.SelectionMode.Multiple;
Selection.Changed += HandleSelectionChanged;
ResetColumnSizes ();
-
- Pango.FontDescription newFont = Style.FontDescription.Copy ();
- newFont.Size = (newFont.Size * 8) / 10;
- liveIcon = ImageService.GetIcon (Stock.Execute, IconSize.Menu);
+ Pango.FontDescription newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11);
+
+ liveIcon = ImageService.GetIcon ("md-live", IconSize.Menu);
noLiveIcon = liveIcon.WithAlpha (0.5);
expCol = new TreeViewColumn ();
@@ -474,8 +469,6 @@ namespace MonoDevelop.Debugger
}
}
- Dictionary<TreeIter, bool> evalSpinnersIcons = new Dictionary<TreeIter, bool>();
-
void HandleSelectionChanged (object sender, EventArgs e)
{
if (!currentHoverIter.Equals (TreeIter.Zero) && store.IterIsValid (currentHoverIter)) {
@@ -485,25 +478,21 @@ namespace MonoDevelop.Debugger
SetPreviewButtonIcon (iconBeforeSelected, currentHoverIter);
}
}
- foreach (var s in evalSpinnersIcons.ToArray()) {
- if (store.IterIsValid (s.Key) && Selection.IterIsSelected (s.Key)) {
- if (!s.Value) {
- store.LoadIcon (s.Key, EvaluateStatusIconColumn, "md-spinner-selected-16", IconSize.Menu);
- evalSpinnersIcons [s.Key] = true;
- }
- } else {
- if (s.Value) {
- store.LoadIcon (s.Key, EvaluateStatusIconColumn, "md-spinner-normal-16", IconSize.Menu);
- evalSpinnersIcons [s.Key] = false;
- }
- }
- }
}
+ Adjustment oldHadjustment;
+ Adjustment oldVadjustment;
+ //Don't convert this event handler to override OnSetScrollAdjustments as it causes problems
void HandleScrollAdjustmentsSet (object o, ScrollAdjustmentsSetArgs args)
{
- Hadjustment.ValueChanged += UpdatePreviewPosition;
- Vadjustment.ValueChanged += UpdatePreviewPosition;
+ if (oldHadjustment != null) {
+ oldHadjustment.ValueChanged -= UpdatePreviewPosition;
+ oldVadjustment.ValueChanged -= UpdatePreviewPosition;
+ }
+ oldHadjustment = Hadjustment;
+ oldVadjustment = Vadjustment;
+ oldHadjustment.ValueChanged += UpdatePreviewPosition;
+ oldVadjustment.ValueChanged += UpdatePreviewPosition;
}
void UpdatePreviewPosition (object sender, EventArgs e)
@@ -560,8 +549,13 @@ namespace MonoDevelop.Debugger
valueCol.RemoveNotification ("width", OnColumnWidthChanged);
expCol.RemoveNotification ("width", OnColumnWidthChanged);
- Hadjustment.ValueChanged -= UpdatePreviewPosition;
- Vadjustment.ValueChanged -= UpdatePreviewPosition;
+ ScrollAdjustmentsSet -= HandleScrollAdjustmentsSet;
+ if (oldHadjustment != null) {
+ oldHadjustment.ValueChanged -= UpdatePreviewPosition;
+ oldVadjustment.ValueChanged -= UpdatePreviewPosition;
+ oldHadjustment = null;
+ oldVadjustment = null;
+ }
values.Clear ();
valueNames.Clear ();
@@ -747,12 +741,11 @@ namespace MonoDevelop.Debugger
compact = value;
Pango.FontDescription newFont;
if (compact) {
- newFont = Style.FontDescription.Copy ();
- newFont.Size = (newFont.Size * 8) / 10;
+ newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11);
valueCol.MaxWidth = 800;
crpViewer.Image = ImageService.GetIcon (Stock.Edit).WithSize (12,12);
} else {
- newFont = Style.FontDescription;
+ newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale12);
valueCol.MaxWidth = int.MaxValue;
}
typeCol.Visible = !compact;
@@ -888,7 +881,7 @@ namespace MonoDevelop.Debugger
ShowExpanders = true;
if (AllowAdding)
- store.AppendValues (createMsg, "", "", null, true, true, null, disabledColor, disabledColor);
+ store.AppendValues (createMsg, "", "", null, true, true, null, Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText), Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText));
LoadState ();
}
@@ -1135,7 +1128,7 @@ namespace MonoDevelop.Debugger
if (val.IsUnknown) {
if (frame != null) {
strval = GettextCatalog.GetString ("The name '{0}' does not exist in the current context.", val.Name);
- nameColor = disabledColor;
+ nameColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText);
canEdit = false;
} else {
canEdit = !val.IsReadOnly;
@@ -1148,27 +1141,22 @@ namespace MonoDevelop.Debugger
int i = strval.IndexOf ('\n');
if (i != -1)
strval = strval.Substring (0, i);
- valueColor = errorColor;
+ valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueErrorText);
canEdit = false;
} else if (val.IsNotSupported) {
strval = "";//val.Value; with new "Show Value" button we don't want to display message "Implicit evaluation is disabled"
- valueColor = disabledColor;
+ valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText);
if (val.CanRefresh)
valueButton = GettextCatalog.GetString ("Show Value");
canEdit = false;
} else if (val.IsEvaluating) {
strval = GettextCatalog.GetString ("Evaluating...");
- if (Selection.IterIsSelected (it)) {
- evalSpinnersIcons [it] = true;
- evaluateStatusIcon = "md-spinner-selected-16";
- } else {
- evalSpinnersIcons [it] = false;
- evaluateStatusIcon = "md-spinner-normal-16";
- }
- valueColor = disabledColor;
+ evaluateStatusIcon = "md-spinner-16";
+
+ valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText);
if (val.IsEvaluatingGroup) {
- nameColor = disabledColor;
+ nameColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText);
name = val.Name;
}
canEdit = false;
@@ -1193,7 +1181,7 @@ namespace MonoDevelop.Debugger
strval = val.DisplayValue ?? "(null)";
}
if (oldValue != null && strval != oldValue)
- nameColor = valueColor = modifiedColor;
+ nameColor = valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueModifiedText);
}
strval = strval.Replace ("\r\n", " ").Replace ("\n", " ");
@@ -1209,9 +1197,6 @@ namespace MonoDevelop.Debugger
store.SetValue (it, IconColumn, icon);
store.SetValue (it, NameColorColumn, nameColor);
store.SetValue (it, ValueColorColumn, valueColor);
- if (evaluateStatusIcon != "md-spinner-normal-16" && evaluateStatusIcon != "md-spinner-selected-16") {
- evalSpinnersIcons.Remove (it);
- }
store.SetValue (it, EvaluateStatusIconVisibleColumn, evaluateStatusIcon != null);
store.LoadIcon (it, EvaluateStatusIconColumn, evaluateStatusIcon, IconSize.Menu);
store.SetValue (it, ValueButtonVisibleColumn, valueButton != null);
@@ -1496,7 +1481,7 @@ namespace MonoDevelop.Debugger
string oldValue;
if (oldValues.TryGetValue (valPath, out oldValue)) {
if (oldValue != val.Value)
- newColor = modifiedColor;
+ newColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueModifiedText);
}
store.SetValue (it, NameColorColumn, newColor);
@@ -1533,7 +1518,7 @@ namespace MonoDevelop.Debugger
void OnEditKeyRelease (object sender, EventArgs e)
{
if (!wasHandled) {
- CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifierState);
+ CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifierState));
PopupCompletion ((Entry) sender);
}
}
@@ -1555,7 +1540,7 @@ namespace MonoDevelop.Debugger
keyValue = args.Event.KeyValue;
if (currentCompletionData != null) {
- wasHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifierState);
+ wasHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifierState));
args.RetVal = wasHandled;
}
}
@@ -1738,10 +1723,10 @@ namespace MonoDevelop.Debugger
void CleanPinIcon ()
{
- if (!lastPinIter.Equals (TreeIter.Zero)) {
+ if (!lastPinIter.Equals (TreeIter.Zero) && store.IterIsValid (lastPinIter)) {
store.SetValue (lastPinIter, PinIconColumn, null);
- lastPinIter = TreeIter.Zero;
}
+ lastPinIter = TreeIter.Zero;
}
protected override bool OnLeaveNotifyEvent (Gdk.EventCrossing evnt)
@@ -1853,9 +1838,8 @@ namespace MonoDevelop.Debugger
TreePath path;
bool closePreviewWindow = true;
- if (CanQueryDebugger && evnt.Button == 1 && GetCellAtPos ((int)evnt.X, (int)evnt.Y, out path, out col, out cr)) {
- TreeIter it;
- store.GetIter (out it, path);
+ TreeIter it;
+ if (CanQueryDebugger && evnt.Button == 1 && GetCellAtPos ((int)evnt.X, (int)evnt.Y, out path, out col, out cr) && store.GetIter (out it, path)) {
if (cr == crpViewer) {
var val = (ObjectValue)store.GetValue (it, ObjectColumn);
DebuggingService.ShowValueVisualizer (val);
@@ -2245,7 +2229,13 @@ namespace MonoDevelop.Debugger
return ((ICompletionWidget)this).CreateCodeCompletionContext (editEntry.Position);
}
}
-
+
+ public double ZoomLevel {
+ get {
+ return 1;
+ }
+ }
+
public event EventHandler CompletionContextChanged;
protected virtual void OnCompletionContextChanged (EventArgs e)
@@ -2280,6 +2270,9 @@ namespace MonoDevelop.Debugger
get {
return editEntry.Position;
}
+ set {
+ editEntry.Position = value;
+ }
}
char ICompletionWidget.GetChar (int offset)
@@ -2352,6 +2345,7 @@ namespace MonoDevelop.Debugger
return editEntry.Style;
}
}
+
#endregion
ObjectValue[] GetValues (string[] names)
@@ -2401,8 +2395,9 @@ namespace MonoDevelop.Debugger
}
}
- class DebugCompletionDataList: List<ICSharpCode.NRefactory.Completion.ICompletionData>, ICompletionDataList
+ class DebugCompletionDataList: List<MonoDevelop.Ide.CodeCompletion.CompletionData>, ICompletionDataList
{
+ public int TriggerWordLength { get; set; }
public bool IsSorted { get; set; }
public DebugCompletionDataList (Mono.Debugging.Client.CompletionData data)
{
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs
index 4d9bc48f2f..52ac37e34e 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs
@@ -272,7 +272,7 @@ namespace MonoDevelop.Debugger
batchChanged.Add (watch);
return;
}
- DispatchService.GuiDispatch (() => {
+ Runtime.RunInMainThread (() => {
if (WatchChanged != null)
WatchChanged (this, new PinnedWatchEventArgs (watch));
});
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
index 97164a0ca5..3e46fd0f6d 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
@@ -45,7 +45,29 @@ using System.Linq;
namespace MonoDevelop.Debugger
{
- public class StackTracePad : ScrolledWindow, IPadContent
+ public class StackTracePad : PadContent
+ {
+ StackTracePadWidget control;
+
+ public StackTracePad ()
+ {
+ Id = "MonoDevelop.Debugger.StackTracePad";
+ control = new StackTracePadWidget ();
+ }
+
+ protected override void Initialize (IPadWindow window)
+ {
+ control.Initialize (window);
+ }
+
+ public override Control Control {
+ get {
+ return control;
+ }
+ }
+ }
+
+ public class StackTracePadWidget : ScrolledWindow
{
const int IconColumn = 0;
const int MethodColumn = 1;
@@ -62,9 +84,9 @@ namespace MonoDevelop.Debugger
IPadWindow window;
bool needsUpdate;
- static Xwt.Drawing.Image pointerImage = Xwt.Drawing.Image.FromResource ("stack-pointer-16.png");
+ static Xwt.Drawing.Image pointerImage = ImageService.GetIcon ("md-stack-pointer", IconSize.Menu);
- public StackTracePad ()
+ public StackTracePadWidget ()
{
this.ShadowType = ShadowType.None;
@@ -189,7 +211,7 @@ namespace MonoDevelop.Debugger
return !value.Contains (key);
}
- void IPadContent.Initialize (IPadWindow window)
+ public void Initialize (IPadWindow window)
{
this.window = window;
window.PadContentShown += delegate {
@@ -344,25 +366,6 @@ namespace MonoDevelop.Debugger
ActivateFrame ();
}
- public Widget Control {
- get {
- return this;
- }
- }
-
- public string Id {
- get { return "MonoDevelop.Debugger.StackTracePad"; }
- }
-
- public string DefaultPlacement {
- get { return "Bottom"; }
- }
-
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
void ShowPopup (Gdk.EventButton evt)
{
var context_menu = new ContextMenu ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs
new file mode 100644
index 0000000000..d4f4f51226
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs
@@ -0,0 +1,104 @@
+//
+// Styles.cs
+//
+// Author:
+// Vsevolod Kukol <sevo@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using MonoDevelop.Ide;
+using Xwt.Drawing;
+
+namespace MonoDevelop.Debugger
+{
+ public static class Styles
+ {
+ public static Color ObjectValueTreeValuesButtonBackground { get; internal set; }
+ public static Color ObjectValueTreeValuesButtonText { get; internal set; }
+ public static Color ObjectValueTreeValuesButtonBorder { get; internal set; }
+ public static Color ObjectValueTreeValueErrorText { get; internal set; }
+ public static Color ObjectValueTreeValueDisabledText { get; internal set; }
+ public static Color ObjectValueTreeValueModifiedText { get; internal set; }
+ public static Color PreviewVisualizerBackgroundColor { get; internal set; }
+ public static Color PreviewVisualizerTextColor { get; internal set; }
+ public static Color PreviewVisualizerHeaderTextColor { get; internal set; }
+
+ public static ExceptionCaughtDialogStyle ExceptionCaughtDialog { get; internal set; }
+
+ public class ExceptionCaughtDialogStyle
+ {
+ public Color TreeBackgroundColor { get; internal set; }
+ public Color InfoFrameBackgroundColor { get; internal set; }
+ public Color InfoFrameBorderColor { get; internal set; }
+ public Color LineNumberBackgroundColor { get; internal set; }
+ public Color LineNumberInUserCodeBackgroundColor { get; internal set; }
+ public Color LineNumberTextColor { get; internal set; }
+ }
+
+ static Styles ()
+ {
+ LoadStyles ();
+ Ide.Gui.Styles.Changed += (o, e) => LoadStyles ();
+ }
+
+ public static void LoadStyles ()
+ {
+ ExceptionCaughtDialog = new ExceptionCaughtDialogStyle ();
+
+ if (IdeApp.Preferences.UserInterfaceSkin == Skin.Light) {
+ ObjectValueTreeValuesButtonBackground = Color.FromName ("#e9f2fc");
+ ObjectValueTreeValuesButtonText = Color.FromName ("#5294eb");
+ ObjectValueTreeValuesButtonBorder = Color.FromName ("#5294eb");
+ ObjectValueTreeValueDisabledText = Color.FromName ("#7f7f7f");
+ ObjectValueTreeValueModifiedText = Color.FromName ("#1FAECE");
+
+ ExceptionCaughtDialog.InfoFrameBackgroundColor = Color.FromName ("#fbefce");
+ ExceptionCaughtDialog.InfoFrameBorderColor = Color.FromName ("#f0e4c2");
+ ExceptionCaughtDialog.LineNumberBackgroundColor = Color.FromName ("#c4c4c4");
+ ExceptionCaughtDialog.LineNumberInUserCodeBackgroundColor = Color.FromName ("#e599de");
+ ExceptionCaughtDialog.LineNumberTextColor = Color.FromName ("#ffffff");
+ } else {
+ ObjectValueTreeValuesButtonBackground = Color.FromName ("#7c8695");
+ ObjectValueTreeValuesButtonText = Color.FromName ("#cbe5ff");
+ ObjectValueTreeValuesButtonBorder = Color.FromName ("#a4bbd5");
+ ObjectValueTreeValueDisabledText = Color.FromName ("#5a5a5a");
+ ObjectValueTreeValueModifiedText = Color.FromName ("#4FCAE6");
+
+ ExceptionCaughtDialog.InfoFrameBackgroundColor = Color.FromName ("#675831");
+ ExceptionCaughtDialog.InfoFrameBorderColor = Color.FromName ("#7a6a3d");
+ ExceptionCaughtDialog.LineNumberBackgroundColor = Color.FromName ("#c4c4c4");
+ ExceptionCaughtDialog.LineNumberInUserCodeBackgroundColor = Color.FromName ("#e599de");
+ ExceptionCaughtDialog.LineNumberTextColor = Color.FromName ("#222222");
+ }
+
+ // Shared
+
+ ObjectValueTreeValueErrorText = Ide.Gui.Styles.WarningForegroundColor;
+
+ PreviewVisualizerBackgroundColor = Ide.Gui.Styles.PopoverWindow.DefaultBackgroundColor;
+ PreviewVisualizerTextColor = Ide.Gui.Styles.PopoverWindow.DefaultTextColor;
+ PreviewVisualizerHeaderTextColor = Ide.Gui.Styles.PopoverWindow.DefaultTextColor;
+
+ ExceptionCaughtDialog.TreeBackgroundColor = Ide.Gui.Styles.PrimaryBackgroundColor;
+ }
+ }
+}
+
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs
index 8d78436425..108ea39c90 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs
@@ -27,6 +27,7 @@ using System;
using Xwt;
using MonoDevelop.Ide.CodeCompletion;
using System.Collections.Generic;
+using MonoDevelop.Ide.Editor.Extension;
namespace MonoDevelop.Debugger
{
@@ -51,6 +52,12 @@ namespace MonoDevelop.Debugger
CompletionWindowManager.WindowClosed += HandleWindowClosed;
}
+ protected override void Dispose (bool disposing)
+ {
+ CompletionWindowManager.WindowClosed -= HandleWindowClosed;
+ base.Dispose (disposing);
+ }
+
void HandleWindowClosed (object sender, EventArgs e)
{
ctx = null;
@@ -73,7 +80,7 @@ namespace MonoDevelop.Debugger
}
if (list != null)
- args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier);
+ args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier));
}
void HandleKeyReleaseEvent (object o, Gtk.KeyReleaseEventArgs args)
@@ -83,7 +90,7 @@ namespace MonoDevelop.Debugger
string text = ctx == null ? Text : Text.Substring (Math.Max (0, Math.Min (ctx.TriggerOffset, Text.Length)));
CompletionWindowManager.UpdateWordSelection (text);
- CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier);
+ CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier));
PopupCompletion ();
}
@@ -116,19 +123,19 @@ namespace MonoDevelop.Debugger
{
#region ICompletionKeyHandler implementation
- public bool PreProcessKey (CompletionListWindow listWindow, Gdk.Key key, char keyChar, Gdk.ModifierType modifier, out KeyActions keyAction)
+ public bool PreProcessKey (CompletionListWindow listWindow, KeyDescriptor descriptor, out KeyActions keyAction)
{
keyAction = KeyActions.None;
- if (keyChar == '.') {
+ if (descriptor.KeyChar == '.') {
return true;
}
return false;
}
- public bool PostProcessKey (CompletionListWindow listWindow, Gdk.Key key, char keyChar, Gdk.ModifierType modifier, out KeyActions keyAction)
+ public bool PostProcessKey (CompletionListWindow listWindow, KeyDescriptor descriptor, out KeyActions keyAction)
{
keyAction = KeyActions.None;
- if (keyChar == '.') {
+ if (descriptor.KeyChar == '.') {
return true;
}
return false;
@@ -150,6 +157,11 @@ namespace MonoDevelop.Debugger
return Text.Substring (startOffset, endOffset - startOffset);
}
+ public void AddSkipChar (int cursorPosition, char c)
+ {
+ // ignore
+ }
+
public char GetChar (int offset)
{
if (offset >= Text.Length)
@@ -214,6 +226,9 @@ namespace MonoDevelop.Debugger
get {
return gtkEntry.Position;
}
+ set {
+ gtkEntry.Position = value;
+ }
}
public int TextLength {
@@ -234,6 +249,11 @@ namespace MonoDevelop.Debugger
}
}
+ double ICompletionWidget.ZoomLevel {
+ get {
+ return 1;
+ }
+ }
#endregion
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
index 073c65ba75..9fa65e2afc 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
@@ -41,7 +41,24 @@ using MonoDevelop.Ide;
namespace MonoDevelop.Debugger
{
- public class ThreadsPad : Gtk.ScrolledWindow, IPadContent
+ public class ThreadsPad: PadContent
+ {
+ ThreadsPadWidget control = new ThreadsPadWidget ();
+
+ protected override void Initialize (IPadWindow window)
+ {
+ Id = "MonoDevelop.Debugger.ThreadsPad";
+ control.Initialize (window);
+ }
+
+ public override Control Control {
+ get {
+ return control;
+ }
+ }
+ }
+
+ public class ThreadsPadWidget : Gtk.ScrolledWindow
{
TreeViewState treeViewState;
PadTreeView tree;
@@ -59,7 +76,7 @@ namespace MonoDevelop.Debugger
Location
}
- public ThreadsPad ()
+ public ThreadsPadWidget ()
{
this.ShadowType = ShadowType.None;
@@ -127,7 +144,7 @@ namespace MonoDevelop.Debugger
UpdateDisplay ();
}
- void IPadContent.Initialize (IPadWindow window)
+ public void Initialize (IPadWindow window)
{
this.window = window;
window.PadContentShown += delegate {
@@ -234,7 +251,7 @@ namespace MonoDevelop.Debugger
void OnRowActivated (object s, RowActivatedArgs args)
{
- TreeIter iter, selected;
+ TreeIter selected;
if (!tree.Selection.GetSelected (out selected))
return;
@@ -254,23 +271,6 @@ namespace MonoDevelop.Debugger
}
}
- public Widget Control {
- get { return this; }
- }
-
- public string Id {
- get { return "MonoDevelop.Debugger.ThreadsPad"; }
- }
-
- public string DefaultPlacement {
- get { return "Bottom"; }
- }
-
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
void OnDebuggerPaused (object s, EventArgs a)
{
UpdateDisplay ();
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png
index c0c017eb32..b9a52a2203 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png
index 9f68a52e2f..e9c7987cef 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png
new file mode 100644
index 0000000000..de38a0fb46
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png
new file mode 100644
index 0000000000..040f23e224
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png
new file mode 100644
index 0000000000..2c4c08f2d9
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png
new file mode 100644
index 0000000000..a411a244df
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png
new file mode 100644
index 0000000000..40138ca93c
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png
new file mode 100644
index 0000000000..0aa16e9590
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png
new file mode 100644
index 0000000000..55be4cd553
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png
new file mode 100644
index 0000000000..e537469f3e
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png
deleted file mode 100644
index f26e32207e..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png
deleted file mode 100644
index 158308d290..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png
deleted file mode 100644
index 610440161f..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png
deleted file mode 100644
index fae72407dd..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png
deleted file mode 100644
index 80cd6238a2..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png
deleted file mode 100644
index ef83576302..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png
deleted file mode 100644
index e17cb11f60..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png
deleted file mode 100644
index 07f213f055..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png
new file mode 100644
index 0000000000..c4c6a89206
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png
new file mode 100644
index 0000000000..f0aedb903c
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png
new file mode 100644
index 0000000000..f51108466b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png
new file mode 100644
index 0000000000..ad0ac47266
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png
index 20ecca2fc7..66e56539b2 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png
index 872a5ff363..f93311be73 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png
new file mode 100644
index 0000000000..9264ccc01e
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png
new file mode 100644
index 0000000000..86c904bca7
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png
index ada1ad3fb5..b6a2c3ed16 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png
index a56d3aef2d..415b83ec16 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png
new file mode 100644
index 0000000000..7b8522627b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png
new file mode 100644
index 0000000000..69a9ea9df7
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png
index bfaf88cf34..e35a7fe46a 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png
index cbf06776a2..8516777e7b 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png
new file mode 100644
index 0000000000..3e17554ad6
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png
new file mode 100644
index 0000000000..e69eb688e6
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png
index d66862ca68..4aff120d7f 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png
index 493c4c5647..2d6626b35b 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png
new file mode 100644
index 0000000000..75d029e290
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png
new file mode 100644
index 0000000000..d80113c471
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png
index 04730ee9f5..10f0020062 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png
index d731b20293..8db6d07582 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png
new file mode 100644
index 0000000000..838d428b56
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png
new file mode 100644
index 0000000000..b136fe4252
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png
index e17b374a94..b8d8dee132 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png
index dc4002600d..58ae8d61a5 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png
new file mode 100644
index 0000000000..7c3b36e74a
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png
new file mode 100644
index 0000000000..b4709dcc77
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png
index d06ef8747f..51093a409f 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png
index 66f4d95b84..e82a46c94c 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png
new file mode 100644
index 0000000000..e9bb5e5067
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png
new file mode 100644
index 0000000000..df49804f20
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png
index 4f126b81b3..5d1692454e 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png
index e100e3de2c..2337f90cb7 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png
new file mode 100644
index 0000000000..fa41eef150
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png
new file mode 100644
index 0000000000..d7660a1ed0
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png
index f55eaee908..4d329b86de 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png
index 172998cd35..6ee71a6ad6 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png
new file mode 100644
index 0000000000..a30a6b829d
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png
new file mode 100644
index 0000000000..3231ab61b1
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png
new file mode 100644
index 0000000000..5fe3aea858
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png
new file mode 100644
index 0000000000..e847c5bf2f
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png
new file mode 100644
index 0000000000..0c142aece1
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png
new file mode 100644
index 0000000000..2d6e69fac9
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png
index 70960c9a1d..4d3bc37de5 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png
index a1d9ab2387..ed0aba7675 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png
new file mode 100644
index 0000000000..479a5dcc25
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png
new file mode 100644
index 0000000000..058843874b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png
new file mode 100644
index 0000000000..442624355f
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png
new file mode 100644
index 0000000000..c6cb9c762b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png
new file mode 100644
index 0000000000..3caf33cd7e
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png
new file mode 100644
index 0000000000..d559606f8f
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png
deleted file mode 100644
index 6603c0d1cf..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png
deleted file mode 100644
index f1cd97e5ae..0000000000
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png
+++ /dev/null
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png
index 9dcded3b92..4d4936779b 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png
index 5e455c726e..58797d6652 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png
new file mode 100644
index 0000000000..265152a27f
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png
new file mode 100644
index 0000000000..2fbe610a91
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png
new file mode 100644
index 0000000000..9de59a516c
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png
new file mode 100644
index 0000000000..1b3044a2be
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png
new file mode 100644
index 0000000000..85a3ff79df
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png
new file mode 100644
index 0000000000..fcfae41a39
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png
index 67eed7f9da..10cff84795 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png
index eb9aa52862..b6fdedfe42 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png
new file mode 100644
index 0000000000..89041ced27
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png
new file mode 100644
index 0000000000..d95df3d982
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png
new file mode 100644
index 0000000000..c3e39ecec0
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png
new file mode 100644
index 0000000000..06704e58d4
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png
new file mode 100644
index 0000000000..f451ea5798
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png
new file mode 100644
index 0000000000..e5525d478b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png
index bcdacbb88b..8d69d17061 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png
index 0a7b96e9ce..7e040e8dbf 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png
new file mode 100644
index 0000000000..f2da4e883e
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png
new file mode 100644
index 0000000000..be282f1dd1
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png
new file mode 100644
index 0000000000..d10925a213
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png
new file mode 100644
index 0000000000..9168634ddc
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png
new file mode 100644
index 0000000000..9d1563efdb
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png
new file mode 100644
index 0000000000..aeb917d31b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png
new file mode 100644
index 0000000000..879d553aca
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png
new file mode 100644
index 0000000000..5778c526cc
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png
new file mode 100644
index 0000000000..7ade180b2a
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png
new file mode 100644
index 0000000000..d04fcbaa44
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png
new file mode 100644
index 0000000000..4805daf179
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png
new file mode 100644
index 0000000000..e1cb0c72ea
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png
new file mode 100644
index 0000000000..4805daf179
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png
new file mode 100644
index 0000000000..e1cb0c72ea
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png
index ee336018f8..a3441895de 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png
index 04577e051a..06e6ec4268 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png
new file mode 100644
index 0000000000..910478d160
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png
new file mode 100644
index 0000000000..89082d5735
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png
new file mode 100644
index 0000000000..50bf3900bf
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png
new file mode 100644
index 0000000000..139f3cc034
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png
new file mode 100644
index 0000000000..50bf3900bf
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png
new file mode 100644
index 0000000000..139f3cc034
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png
index bd7976085e..cd3124c76c 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png
index b88716e4b9..7e6f661afe 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png
new file mode 100644
index 0000000000..4eedc51b5a
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png
new file mode 100644
index 0000000000..0ba8d38c46
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png
new file mode 100644
index 0000000000..829a25877b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png
new file mode 100644
index 0000000000..9182a875cb
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png
new file mode 100644
index 0000000000..829a25877b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png
new file mode 100644
index 0000000000..9182a875cb
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png
index 7a77d14929..7256ded2cf 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png
index dfd9e9f12e..71d19442d5 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png
new file mode 100644
index 0000000000..efeff10ce7
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png
new file mode 100644
index 0000000000..b2c40af2a5
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png
new file mode 100644
index 0000000000..9bdc6e66f1
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png
new file mode 100644
index 0000000000..fb0259fb85
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png
new file mode 100644
index 0000000000..9bdc6e66f1
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png
new file mode 100644
index 0000000000..fb0259fb85
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png
index bfb4cd5e3b..a69ea1fc49 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png
index 63120d12ce..8ae68592ed 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png
new file mode 100644
index 0000000000..6f0b38f989
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png
new file mode 100644
index 0000000000..6c9424c687
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png
new file mode 100644
index 0000000000..fa35a1ecd9
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png
new file mode 100644
index 0000000000..2d5c8dbc0d
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png
new file mode 100644
index 0000000000..fa35a1ecd9
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png
new file mode 100644
index 0000000000..2d5c8dbc0d
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png
new file mode 100644
index 0000000000..7964ea8283
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png
new file mode 100644
index 0000000000..d2feceaeb9
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png
index f26e32207e..c00254dd9f 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png
index b8681ba963..4c1654ebfd 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png
new file mode 100644
index 0000000000..dbd2c9da8f
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png
new file mode 100644
index 0000000000..d03a48d630
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png
new file mode 100644
index 0000000000..9f98c3062b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png
new file mode 100644
index 0000000000..0b660d7edc
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png
new file mode 100644
index 0000000000..9f98c3062b
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png
new file mode 100644
index 0000000000..0b660d7edc
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png
index a9c99d7ea1..3c0b36c9c6 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png
index 2379b82339..6a0e1eb227 100644
--- a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png
new file mode 100644
index 0000000000..d94d819df0
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png
new file mode 100644
index 0000000000..0e16ba3d8a
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png
new file mode 100644
index 0000000000..388ec23b6c
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png
new file mode 100644
index 0000000000..9fd925bd50
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png
new file mode 100644
index 0000000000..b90f6cfd67
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png
new file mode 100644
index 0000000000..74fd0875d0
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png
new file mode 100644
index 0000000000..9f77c395f5
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png
new file mode 100644
index 0000000000..5e82ea7766
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png
new file mode 100644
index 0000000000..9c5471918d
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png
new file mode 100644
index 0000000000..8b34d302f3
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png
new file mode 100644
index 0000000000..8813df49da
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png
Binary files differ
diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png
new file mode 100644
index 0000000000..2a4035681a
--- /dev/null
+++ b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png
Binary files differ