From 91afa612b94464762cbc8a2ccff70e02b59dc5b2 Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Fri, 28 Oct 2022 18:12:20 +0200 Subject: [PATCH] =?UTF-8?q?PascalABCNET=20for=20Linux:=20=D0=97=D0=B0?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D0=BA=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=BC=20=D1=81=20=D1=84=D0=BB=D0=B0=D0=B3=D0=BE=D0=BC=20?= =?UTF-8?q?--debug=20PascalABCNET=20for=20Linux:=20=D0=9E=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=B8=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D1=85=D0=B2=D0=B0=D1=82=D1=8B=D0=B2=D0=B0=D1=8E=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20IDE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DS/RunManager/RunManager.cs | 58 ++++++++++--------- .../DS/Utils/ProcessRunner.cs | 7 ++- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/VisualPascalABCNETLinux/DS/RunManager/RunManager.cs b/VisualPascalABCNETLinux/DS/RunManager/RunManager.cs index ef4294b9f..2b96463ba 100644 --- a/VisualPascalABCNETLinux/DS/RunManager/RunManager.cs +++ b/VisualPascalABCNETLinux/DS/RunManager/RunManager.cs @@ -128,40 +128,44 @@ namespace VisualPascalABC try { foreach (string StackItemData in StackItemsData) - { - StackTraceItem StackTraceItem = new StackTraceItem(); - string str = StackItemData.TrimStart(' '); - int beg = str.IndexOf(' '); - int end = str.IndexOf(") "); - if (end == -1) - end = str.IndexOf(")"); - if (end == -1) - end = str.Length-1; - StackTraceItem.FunctionName = str.Substring(beg + 1, end - beg); - if (end + 1 < str.Length) { - str = str.Substring(end + 1); - str = str.TrimStart(' '); - beg = str.IndexOf(' '); - end = str.IndexOf(':'); - end = str.IndexOf(':', end + 1); + StackTraceItem StackTraceItem = new StackTraceItem(); + string str = StackItemData.TrimStart(' '); + int beg = str.IndexOf(' '); + int end = str.IndexOf(") "); if (end == -1) - continue; - StackTraceItem.SourceFileName = str.Substring(beg + 1, end - beg-1); - beg = str.IndexOf(' ',end); - if (beg > 0) + end = str.IndexOf(")"); + if (end == -1) + end = str.Length - 1; + StackTraceItem.FunctionName = str.Substring(beg + 1, end - beg); + + if (end + 1 < str.Length) { - string slnum = str.Substring(beg + 1).Replace(".", ""); - StackTraceItem.LineNumber = Convert.ToInt32(slnum); - if (StackTraceItem.LineNumber >= 16777214) + str = str.Substring(end + 1); + + str = str.TrimStart(' '); + beg = str.IndexOf("in "); + end = str.IndexOf(':'); + //end = str.IndexOf(':', end + 1); + + if (end == -1) + continue; + StackTraceItem.SourceFileName = str.Substring(beg + 3, end - beg - 3); + //Console.WriteLine(StackTraceItem.SourceFileName); + beg = end; + if (beg > 0) { - StackTraceItem.LineNumber = 0; - StackTraceItem.SourceFileName = null; + string slnum = str.Substring(beg + 1).Replace(".", ""); + StackTraceItem.LineNumber = Convert.ToInt32(slnum); + if (StackTraceItem.LineNumber >= 16777214) + { + StackTraceItem.LineNumber = 0; + StackTraceItem.SourceFileName = null; + } } } + StackTrace.Add(StackTraceItem); } - StackTrace.Add(StackTraceItem); - } } catch (Exception e) { diff --git a/VisualPascalABCNETLinux/DS/Utils/ProcessRunner.cs b/VisualPascalABCNETLinux/DS/Utils/ProcessRunner.cs index f4646f63d..57604d153 100644 --- a/VisualPascalABCNETLinux/DS/Utils/ProcessRunner.cs +++ b/VisualPascalABCNETLinux/DS/Utils/ProcessRunner.cs @@ -239,9 +239,12 @@ namespace VisualPascalABC.Utils else #endif { - process.StartInfo.FileName = command; + string dbg = ""; + if (WorkbenchServiceFactory.Workbench.VisualEnvironmentCompiler.Compiler.CompilerOptions.Debug) + dbg = " --debug "; + process.StartInfo.FileName = "mono"; process.StartInfo.WorkingDirectory = workingDirectory; - process.StartInfo.Arguments = arguments; + process.StartInfo.Arguments = dbg+command+" "+arguments; } } //process.StartInfo.Domain = Domain.FriendlyName;