Ejemplo n.º 1
0
 void RegisterVariables()
 {
     _variableResolver.Register("AppName", () => System.IO.Path.GetFileNameWithoutExtension(ProgramHostPath));
     _variableResolver.Register("AppFolder", () => System.IO.Path.GetDirectoryName(ProgramHostPath));
     _variableResolver.Register("Win3muFolder", () =>
     {
         if (System.Reflection.Assembly.GetExecutingAssembly() != null)
         {
             return(System.IO.Path.GetDirectoryName(typeof(Machine).Assembly.Location));
         }
         return(null);
     });
     _variableResolver.Register("ax", () => ax.ToString("X4"));
     _variableResolver.Register("bx", () => bx.ToString("X4"));
     _variableResolver.Register("cx", () => cx.ToString("X4"));
     _variableResolver.Register("dx", () => dx.ToString("X4"));
     _variableResolver.Register("si", () => si.ToString("X4"));
     _variableResolver.Register("di", () => di.ToString("X4"));
     _variableResolver.Register("sp", () => sp.ToString("X4"));
     _variableResolver.Register("bp", () => bp.ToString("X4"));
     _variableResolver.Register("ip", () => ip.ToString("X4"));
     _variableResolver.Register("cs", () => cs.ToString("X4"));
     _variableResolver.Register("es", () => es.ToString("X4"));
     _variableResolver.Register("ds", () => ds.ToString("X4"));
     _variableResolver.Register("ss", () => ss.ToString("X4"));
     _variableResolver.Register("eflags", () => EFlags.ToString("X4"));
     _variableResolver.Register("al", () => al.ToString("X2"));
     _variableResolver.Register("ah", () => ah.ToString("X2"));
     _variableResolver.Register("bl", () => bl.ToString("X2"));
     _variableResolver.Register("bh", () => bh.ToString("X2"));
     _variableResolver.Register("cl", () => cl.ToString("X2"));
     _variableResolver.Register("ch", () => ch.ToString("X2"));
     _variableResolver.Register("dl", () => dl.ToString("X2"));
     _variableResolver.Register("dh", () => dh.ToString("X2"));
     _variableResolver.Register("asm", () =>
     {
         if (_disassembled == null)
         {
             _disassembled = _disassembler.Read(cs, ip);
         }
         return(_disassembled);
     });
     _variableResolver.Register("annotations", () =>
     {
         if (_disassembled == null)
         {
             _disassembled = _disassembler.Read(cs, ip);
         }
         return(_expressionContext.GenerateDisassemblyAnnotations(_disassembled, _disassembler.ImplicitParams));
     });
     _variableResolver.Register("cputime", () => CpuTime.ToString());
 }
Ejemplo n.º 2
0
                public override bool TryGetMember(GetMemberBinder binder, out object result)
                {
                    if (m_probes.TryGetValue(binder.Name, out CpuTime x))
                    {
                        result = x.Timer;
                    }
                    else
                    {
                        x = new CpuTime();
                        m_probes[binder.Name] = x;
                        Register(binder.Name, x);
                        s_registrationActions.ForEach(a => a(binder.Name, x));
                        result = x.Timer;
                    }

                    return(true);
                }
Ejemplo n.º 3
0
 public CpuTime getCpuTimeDiff(CpuTime c1, CpuTime c2)
 {
     return(new CpuTime(c2.utime - c1.utime, c2.stime - c1.stime, c2.cutime - c1.cutime, c2.cstime - c1.cstime));
 }