l.Add (new ThreadStartEvent (vm, req_id, id));
break;
case EventType.ThreadDeath:
+ vm.GetThread (id).InvalidateFrames ();
vm.InvalidateThreadCache ();
l.Add (new ThreadDeathEvent (vm, req_id, id));
break;
info.FileName = "valgrind";
info.UseShellExecute = false;
- info.StandardErrorEncoding = Encoding.UTF8;
- info.StandardOutputEncoding = Encoding.UTF8;
+ if (info.RedirectStandardError)
+ info.StandardErrorEncoding = Encoding.UTF8;
+
+ if (info.RedirectStandardOutput)
+ info.StandardOutputEncoding = Encoding.UTF8;
ITargetProcess p;
if (options != null && options.CustomProcessLauncher != null)
return;
+ // string constructor
+ var stringType = vm.RootDomain.Corlib.GetType ("System.String");
+ var stringConstructor = stringType.GetMethods ().Single (c=>
+ c.Name == ".ctor" &&
+ c.GetParameters ().Length == 2 &&
+ c.GetParameters ()[0].ParameterType.Name == "Char" &&
+ c.GetParameters ()[1].ParameterType.Name == "Int32");
+ var str = stringType.NewInstance (e.Thread, stringConstructor, new Value [] { vm.CreateValue ('a'), vm.CreateValue (3)});
+
+ AssertValue("aaa", str);
+
// pass primitive
m = t.GetMethod ("invoke_pass_primitive");
Value[] args = new Value [] {