From 8af3a7dff4c54c7eeba0abbba7199ca4e8a6b0ce Mon Sep 17 00:00:00 2001 From: Hyungju Lee Date: Fri, 3 Feb 2023 12:06:34 +0900 Subject: [PATCH] [Tizen] Handle exception in System.Console.SetCursorPosition in some environments System.ArgumentOutOfRangeException: The value must be greater than or equal to zero and less than the console's buffer size in that dimension. (Parameter 'top') Actual value was -1. at System.Console.SetCursorPosition(Int32 left, Int32 top) at Microsoft.Internal.Common.Utils.LineRewriter.SystemConsoleLineRewriter() at Microsoft.Internal.Common.Utils.LineRewriter.RewriteConsoleLine() at Microsoft.Diagnostics.Tools.Trace.CollectCommandHandler.<>c__DisplayClass6_2.b__4() at Microsoft.Diagnostics.Tools.Trace.CollectCommandHandler.Collect(CancellationToken ct, IConsole console, Int32 processId, FileInfo output, UInt32 buffersize, String providers, String profile, TraceFileFormat format, TimeSpan duration, String clrevents, String clreventlevel, String name, String diagnosticPort, Boolean showchildio, Boolean resumeRuntime --- src/Tools/Common/Commands/Utils.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Tools/Common/Commands/Utils.cs b/src/Tools/Common/Commands/Utils.cs index cb501fb387..73c41814cc 100644 --- a/src/Tools/Common/Commands/Utils.cs +++ b/src/Tools/Common/Commands/Utils.cs @@ -159,7 +159,16 @@ public void RewriteConsoleLine() } } - private void SystemConsoleLineRewriter() => Console.SetCursorPosition(0, LineToClear); + private static bool isSetCursorPositionSupported = true; + private void SystemConsoleLineRewriter() { + try { + if (isSetCursorPositionSupported) + Console.SetCursorPosition(0, LineToClear); + } catch { + Console.WriteLine("Console.SetCursorPosition() is not supported in this env."); + isSetCursorPositionSupported = false; + } + } } internal class ReturnCode