diff options
author | Jeffrey Stedfast <jeff@xamarin.com> | 2014-06-04 21:50:18 +0400 |
---|---|---|
committer | Jeffrey Stedfast <jeff@xamarin.com> | 2014-06-04 21:51:58 +0400 |
commit | 97257ca6eaa0c66eea6dfbb8e71fe6d4c79b2344 (patch) | |
tree | 64d6da3f78e7d84441126c24c976b69307d11f84 /main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer | |
parent | e8723ad81de979b5dd75aad70f85730a1a266602 (diff) |
[Debugger] When fetching the value for a visualizer, always enable AllowTargetInvoke
Partial fix for bug #20341
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer')
3 files changed, 17 insertions, 8 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/CStringVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/CStringVisualizer.cs index 7da4df1746..f152492731 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/CStringVisualizer.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/CStringVisualizer.cs @@ -83,7 +83,7 @@ namespace MonoDevelop.Debugger.Visualizer static string ByteArrayToCString (byte[] buf) { - StringBuilder text = new StringBuilder (); + var text = new StringBuilder (); for (int i = 0; i < buf.Length; i++) AppendByte (text, buf[i]); @@ -93,7 +93,7 @@ namespace MonoDevelop.Debugger.Visualizer static string SByteArrayToCString (sbyte[] buf) { - StringBuilder text = new StringBuilder (); + var text = new StringBuilder (); for (int i = 0; i < buf.Length; i++) AppendByte (text, (byte) buf[i]); @@ -141,7 +141,10 @@ namespace MonoDevelop.Debugger.Visualizer void PopulateTextView (ObjectValue value) { - rawArray = value.GetRawValue () as RawValueArray; + var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone (); + ops.AllowTargetInvoke = true; + + rawArray = value.GetRawValue (ops) as RawValueArray; length = rawArray.Length; offset = 0; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs index 1937ffc3e1..24ee614a5e 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs @@ -45,20 +45,25 @@ namespace MonoDevelop.Debugger.Visualizer public override Gtk.Widget GetVisualizerWidget (ObjectValue val) { - Gdk.Pixbuf pixbuf; + var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone (); string file = Path.GetTempFileName (); + Gdk.Pixbuf pixbuf; + + ops.AllowTargetInvoke = true; + try { - RawValue pix = (RawValue) val.GetRawValue (); + var pix = (RawValue) val.GetRawValue (ops); pix.CallMethod ("Save", file, "png"); pixbuf = new Gdk.Pixbuf (file); } finally { File.Delete (file); } - Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow (); + + var sc = new Gtk.ScrolledWindow (); sc.ShadowType = Gtk.ShadowType.In; sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; - Gtk.Image image = new Gtk.Image (pixbuf); + var image = new Gtk.Image (pixbuf); sc.AddWithViewport (image); sc.ShowAll (); return sc; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/TextVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/TextVisualizer.cs index d0fb039ec5..cb2b881229 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/TextVisualizer.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Visualizer/TextVisualizer.cs @@ -107,6 +107,7 @@ namespace MonoDevelop.Debugger.Visualizer void PopulateTextView (ObjectValue value) { var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone (); + ops.AllowTargetInvoke = true; ops.ChunkRawStrings = true; if (value.TypeName == "string") { @@ -124,7 +125,7 @@ namespace MonoDevelop.Debugger.Visualizer }; } } else if (value.TypeName == "char[]") { - rawArray = value.GetRawValue () as RawValueArray; + rawArray = value.GetRawValue (ops) as RawValueArray; length = rawArray.Length; offset = 0; |