public override void Execute(string text) { base.Execute(text); char[] sp = { ' ', '\t' }; var argv = text.Split(sp, 1, StringSplitOptions.RemoveEmptyEntries); if (argv.Length != 1) { Context.CONSOLE.Write(CommandHelp); return; } var strArgSize = argv[0]; var varArgSize = Context.IDE.Debugger.GetExpression(strArgSize, false, 100); var processId = Context.IDE.Debugger.CurrentProcess.ProcessID; if (!varArgSize.IsValidValue) { Context.CONSOLE.Write("Argument <size>: " + strArgSize + " is invalid!"); return; } long dataSize = 0; var numStyleSize = NumberHelpers.IsHexNumber(varArgSize.Value) ? NumberStyles.HexNumber : NumberStyles.Integer; var bRet = true; bRet = bRet && NumberHelpers.TryParseLong(varArgSize.Value, numStyleSize, out dataSize); if (!bRet) { Context.CONSOLE.Write("Failed to evaluate command arguments!"); return; } ulong qwPtr = 0; qwPtr = MemoryHelpers.ProcAlloc(processId, dataSize); if (0 == qwPtr) { Context.CONSOLE.Write("Failed to allocate memory!"); return; } Context.CONSOLE.Write("Allocated: " + dataSize + " bytes at address: " + NumberHelpers.ToHex((long)qwPtr)); }
public override void Execute(string[] args) { base.Execute(args); if (args.Length != 1) { Context.CONSOLE.Write(CommandHelp); return; } var strArgSize = args[0]; var varArgSize = Context.IDE.Debugger.GetExpression(strArgSize, false, 100); if (!varArgSize.IsValidValue) { Context.CONSOLE.Write("Argument <size>: " + strArgSize + " is invalid!"); return; } long dataSize = 0; var numStyleSize = NumberHelpers.IsHexNumber(varArgSize.Value) ? NumberStyles.HexNumber : NumberStyles.Integer; var bRet = true; bRet = bRet && NumberHelpers.TryParseLong(varArgSize.Value, numStyleSize, out dataSize); if (!bRet) { Context.CONSOLE.Write("Failed to evaluate command arguments!"); return; } ulong qwPtr = MemoryHelpers.ProcAlloc(Context.IDE.Debugger.CurrentStackFrame, dataSize); if (0 == qwPtr) { Context.CONSOLE.Write("Failed to allocate memory!"); return; } Context.CONSOLE.Write("Allocated: " + dataSize + " bytes at address: " + NumberHelpers.ToHex((long)qwPtr)); }