static void Main(string[] args) { PrintCmd display = printInConsole; display.Invoke("message for delegate call using Invoke!"); display("message for delegate call implicit inkove."); }
public MainWindowVM(ITenantDBsDir tenantDBsDir, bool clickRefresh = true) : base(tenantDBsDir) { DateRange = new DateRangePickerVM(this); BankAcctPicker = new BankAccountPickerVM(this, clickRefresh); VoucherReqs = new VoucherReqsTabVM(this); DcdrReport = new DcdrTabVM(this); Journals = new JournalsTabVM(this); AllChkVouchers = new AllVoucherRequestsVM(this); AdHocJobs = new AdHocJobCmdsVM(this); PrintCmd.SetLabel("Print “Pending Checks” List"); }
public override void Evaluate(Response response, dynamic arguments) { var expression = getString(arguments, "expression"); string error = null; if (expression == null) { error = "expression missing"; } else { // todo check expression int frameId = getInt(arguments, "frameId", -1); if (frameId == -1) { error = "frameId miss"; } PrintCmd cmd = new PrintCmd(); cmd.m_name = expression; cmd.m_stack_idx = frameId; PrintRes res = SendOneCmdAndWaitForResponse(cmd) as PrintRes; if (res != null) { SendResponse(response, new EvaluateResponseBody(res.ToResString(), 0)); return; } else { error = "can not ecaluate, network seems break"; } } // 2020-10-13 这个逻辑有抛异常,但是还是没定位到为啥vscode调试卡死。 // 并且回忆不起来这个调试器代码的原始参考了,也没找到 // 只找到官方文档:https://microsoft.github.io/debug-adapter-protocol/overview //if(error != null) { SendErrorResponse(response, 3014, "Evaluate request failed ({_reason}).", new { _reason = error }); } }
DebugCmd ParseCmd(string line) { string[] args = System.Text.RegularExpressions.Regex.Split(line, @"\s+"); if (args.Length == 0) { return(null); } if (args[0] == "b" && args.Length == 3) { BreakCmd cmd = new BreakCmd(); BreakPoint point = new BreakPoint(); point.file_name = args[1]; point.line = Convert.ToInt32(args[2]); cmd.m_cmd_mode = BreakCmd.BreakCmdMode.Set; cmd.m_break_points.Add(point); return(cmd); } else if (args[0] == "br" && args.Length >= 2) { BreakCmd cmd = new BreakCmd(); if (args[1] == "list") { cmd.m_cmd_mode = BreakCmd.BreakCmdMode.List; return(cmd); } else if (args[1] == "clear") { cmd.m_cmd_mode = BreakCmd.BreakCmdMode.DeleteAll; return(cmd); } else if (args[1] == "delete" && args.Length >= 3) { cmd.m_cmd_mode = BreakCmd.BreakCmdMode.Delete; for (int i = 2; i < args.Length; ++i) { BreakPoint point = new BreakPoint(); point.index = Convert.ToInt32(args[i]); cmd.m_break_points.Add(point); } return(cmd); } } else if (args[0] == "c") { Continue cmd = new Continue(); return(cmd); } else if (args[0] == "n") { StepOver cmd = new StepOver(); return(cmd); } else if (args[0] == "s") { StepIn cmd = new StepIn(); return(cmd); } else if (args[0] == "f") { StepOut cmd = new StepOut(); return(cmd); } else if (args[0] == "bt") { BackTraceCmd cmd = new BackTraceCmd(); return(cmd); } else if (args[0] == "p" && args.Length == 2) { PrintCmd cmd = new PrintCmd(); cmd.m_name = args[1]; return(cmd); } else if (args[0] == "t") { Terminate cmd = new Terminate(); return(cmd); } else if (args[0] == "h") { Console.Write(_help_info); } else { Console.WriteLine("what do you want? type 'h' for help"); } return(null); }