Beispiel #1
0
        public bool ProcessBreakpointEvent(IntPtr hThread, ref Context context)
        {
            // Process each target registered to this breakpoint
            List<Target> targets = new List<Target>(_targets);
            List<Target> processedTargets = new List<Target>(_targets.Count);

            foreach (Target target in targets)
            {
                // Ask the target to prcess the breakpoint event
                if (!processedTargets.Contains(target))
                {
                    int index = targets.IndexOf(target);
                    target.ProcessBreakpointEvent(this, hThread, ref context, Names[index]);
                    processedTargets.Add(target);
                }
            }

            return true;
        }
Beispiel #2
0
        public virtual void SetLong(long value, Context context)
        {
            // Set the underlying element to the specified value
            if (this.GetProcess().IsWin64)
            {
                MemoryFunctions.WriteMemory(this.GetProcess().ProcessDotNet, (IntPtr)Address, value);
            }
            else
            {
                MemoryFunctions.WriteMemory(this.GetProcess().ProcessDotNet, (IntPtr)Address, (Int32) value);
            }

            // Read the data again
            try
            {
                Data = MemoryFunctions.ReadMemory(process.ProcessDotNet, Address, (uint)Size);
            }
            catch (Exception e)
            {
                Data = null;
            }
        }
Beispiel #3
0
 public void ProcessBreakpointEvent(Breakpoint breakpoint, IntPtr hThread, ref Context context, string eventName)
 {
     // Ask the process manager handle the breakpoint event
     _process.HandleBreakpointEvent(this, breakpoint, hThread, context, eventName);
 }
Beispiel #4
0
 public FunctionArguments ParseArguments(List stackSpec, List regSpec, Context context)
 {
     return new FunctionArguments(_pyBoss, context, stackSpec, regSpec, this);
 }
Beispiel #5
0
 public void HandleBreakpointEvent(Target target, Breakpoint breakpoint, IntPtr hThread, Context context, string eventName)
 {
     try
     {
         this.PyProcess.breakpoint_hit(target.PyTarget, eventName, context.GetIP(), context, hThread);
     }
     catch (Exception e)
     {
         _pyBoss.PrintError(e, string.Format("'Process' handler for instance '{0}' failed during attempt to call 'breakpoint_hit()':", _name));
     }
 }