PascalABCNET for Linux: Запуск программ с флагом --debug
PascalABCNET for Linux: Ошибки времени выполнения теперь перехватываются IDE
This commit is contained in:
parent
1c5c8c6735
commit
91afa612b9
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue