private async Task InvalidateFunctions(uint functionIndexStart, uint functionIndexEnd) { var fbb = Debugger.BeginRequest(); int requestDataOffset = ListFunctionsRequest.CreateListFunctionsRequest( fbb, Handle, functionIndexStart, functionIndexEnd); var response = await Debugger.CommitRequest( fbb, RequestData.ListFunctionsRequest, requestDataOffset); var responseData = new ListFunctionsResponse(); response.GetResponseData(responseData); var functionEntry = new xe.debug.proto.FunctionEntry(); for (int i = 0; i < responseData.EntryLength; ++i) { responseData.GetEntry(functionEntry, i); var function = new Function(Debugger, this, functionEntry); functions.Add(function); } functions.Sort((Function a, Function b) => { return((int)((long)a.AddressStart - (long)b.AddressStart)); }); }
public async Task Invalidate() { var fbb = Debugger.BeginRequest(); int requestDataOffset = GetFunctionRequest.CreateGetFunctionRequest(fbb, Identifier); var response = await Debugger.CommitRequest( fbb, RequestData.GetFunctionRequest, requestDataOffset); var responseData = new GetFunctionResponse(); response.GetResponseData(responseData); var functionData = responseData.Function; this.AddressEnd = functionData.AddressEnd; this.MachineCodeStart = functionData.MachineCodeStart; this.MachineCodeEnd = functionData.MachineCodeEnd; this.DisasmHirUnoptimized = functionData.DisasmHirRaw; this.DisasmHirOptimized = functionData.DisasmHirOpt; if (DisasmHirUnoptimized != null) { DisasmHirUnoptimized = DisasmHirUnoptimized.Replace("\n", "\r\n"); } if (DisasmHirOptimized != null) { DisasmHirOptimized = DisasmHirOptimized.Replace("\n", "\r\n"); } OnChanged(); }
private async Task InvalidateModule() { var fbb = Debugger.BeginRequest(); int requestDataOffset = GetModuleRequest.CreateGetModuleRequest(fbb, Handle); var response = await Debugger.CommitRequest( fbb, RequestData.GetModuleRequest, requestDataOffset); var responseData = new GetModuleResponse(); response.GetResponseData(responseData); ModuleType = responseData.Module.Type; Name = responseData.Module.Name; Path = responseData.Module.Path; }
public async Task Invalidate() { var fbb = debugger.BeginRequest(); ListThreadsRequest.StartListThreadsRequest(fbb); int requestDataOffset = ListThreadsRequest.EndListThreadsRequest(fbb); var response = await debugger.CommitRequest( fbb, RequestData.ListThreadsRequest, requestDataOffset); ListThreadsResponse responseData = new ListThreadsResponse(); response.GetResponseData(responseData); for (int i = 0; i < responseData.ThreadLength; ++i) { var threadData = responseData.GetThread(i); // threadData.Name; } OnChanged(); }
public async Task Invalidate() { var fbb = debugger.BeginRequest(); ListModulesRequest.StartListModulesRequest(fbb); int requestDataOffset = ListModulesRequest.EndListModulesRequest(fbb); var response = await debugger.CommitRequest( fbb, RequestData.ListModulesRequest, requestDataOffset); ListModulesResponse responseData = new ListModulesResponse(); response.GetResponseData(responseData); var pendingTasks = new List <Task>(); for (int i = 0; i < responseData.EntryLength; ++i) { var moduleEntry = responseData.GetEntry(i); var module = modules.Find((m) => m.Handle == moduleEntry.Handle); if (module == null) { // Module not found. module = new Module(debugger, moduleEntry.Handle); pendingTasks.Add(module.Invalidate(moduleEntry.FunctionCount)); modules.Add(module); } else { // Module already present. pendingTasks.Add(module.Invalidate(moduleEntry.FunctionCount)); } } await Task.WhenAll(pendingTasks); OnChanged(); }