// Error public static void error(string cmt) { var s = cmt + YDEF_DEBUG.RuntimeErrorInfo(); throw new SystemException(s); }
//public static int? m_curFild_id=null; //base 0 public static void BP(string[] plist) { var NL = Environment.NewLine; if (plist == null || plist.Length == 0) { BP_List(); return; } var p0 = plist[0].ToLower(); string p1 = plist.Length > 1 ? plist[1].ToLower() : null; string p2 = plist.Length > 2 ? plist[2].ToLower() : null; if (Array.FindIndex(new string[] { "?", "h", "help" }, i => i == p0) >= 0) { var helpmsg = "bp - ブレイクポインタのリスト表示 " + NL + "bp c|clear|r|reset - ブレイクポインタのクリア " + NL + "bp d NUM [FID|\"ファイル名\"]- NUM行のブレイクポインタ削除 " + NL + "bp NUM [FID|\"ファイル名\"] - カレントファイルのnum行目にブレイクポインタ設定 " + NL + "bp f FID - file FIDのファイルに変更 " + NL + "bp f - BP設定対象のファイル名表示 " + NL + " " + NL + "bpを設定すると debug 1も同時設定される。 " + NL; SendWriteLine(helpmsg); return; } if (Array.FindIndex(new string[] { "c", "clear", "r", "reset" }, i => i == p0) >= 0) { slagtool.YDEF_DEBUG.ResetAllBreakpoints(); SendWriteLine("全てのブレイクポイントをクリアしました。"); return; } if (p0 == "f") { if (p1 == null) { SendWriteLine("カレントファイル:" + slagtool.YDEF_DEBUG.cur_filename); return; } var num = intparse(p1); if (num == null || (int)num < 0) { SendWriteLine("削除の行番号が不正です。"); return; } var dnum = (int)num; slagtool.YDEF_DEBUG.cur_file_id = dnum; SendWriteLine("カレントファイルを変更しました。カレントファイル:" + slagtool.YDEF_DEBUG.cur_filename); return; } //BP X 行 ["ファイル名" or ファイル番号] -- on/off逆転 if (p0 == "x") { var num = intparse(p1); if (num == null || (int)num < 0) { SendWriteLine("削除の行番号が不正です。"); return; } var line = (int)num; YDEF_DEBUG.FlipBreakpoint(line, p2); GetBp(); return; } if (p0 == "d" && !string.IsNullOrEmpty(p1)) { var num = intparse(p1); if (num == null || (int)num < 0) { SendWriteLine("削除の行番号が不正です。"); return; } int dnum = (int)num; var b = slagtool.YDEF_DEBUG.DelBreakpoint(dnum, p2); if (b) { SendWriteLine("削除しました。"); } else { SendWriteLine("削除の入力が不正です。"); } return; } if (!string.IsNullOrEmpty(p0)) { var num = intparse(p0); if (num == null || (int)num < 0) { SendWriteLine("設定行番号が不正です。"); return; } int dnum = (int)num; slagtool.YDEF_DEBUG.AddBreakpoint(dnum, p2); SendWriteLine("設定しました。"); if (slagtool.sys.DEBUGLEVEL == 0) { slagtool.util.SetDebugLevel(1); SendWriteLine("デバッグレベル1を設定しました。"); } return; } }