static void Main(string[] args) { if (args.Length < 1 || args[0] == "/?") { PrintHelpText(); return; } Console.BufferWidth = 1000; var debugger = new DebuggerInvoker(args); int position = 0; ConsoleKeyInfo keyPressed; do { PrintPreDebuggingOptions(debugger, ref position); GetPreDebuggingKey(out keyPressed); PerformPreDebuggingAction(debugger, keyPressed, ref position); } while (keyPressed.Key != ConsoleKey.F5); Console.Clear(); Console.SetCursorPosition(0, 0); ConsoleHelper.ClearLinesAndReturnCursor(0, 0, 10); debugger.RunProgramWithDebugging(); }
private static void PrintPreDebuggingOptions(DebuggerInvoker debugger, ref int position) { Console.Clear(); Console.SetCursorPosition(0, 0); ConsoleHelper.ClearLinesAndReturnCursor(0, 0, 7); Console.WriteLine(debugger); DrawPointerLine(position); Console.WriteLine(); Console.WriteLine("Press Left or Right to move the cursor."); Console.WriteLine("Press F9 to set a break point."); Console.WriteLine("Press F5 to start debugging."); }
private static void PerformPreDebuggingAction(DebuggerInvoker debugger, ConsoleKeyInfo keyPressed, ref int position) { switch (keyPressed.Key) { case ConsoleKey.LeftArrow: if (position > 0) { position--; } break; case ConsoleKey.RightArrow: if (position < Console.BufferWidth) { position++; } break; case ConsoleKey.F9: debugger.ToggleBreakPoint(position); break; } }