Exemplo n.º 1
0
 public StackFrame(string address, string module, string symbol, OptimizationTier optimizationTier)
 {
     Address          = address;
     Module           = module;
     Symbol           = symbol;
     OptimizationTier = optimizationTier;
 }
Exemplo n.º 2
0
        public StackFrame(string address, string module, string symbol)
        {
            Address          = address;
            Module           = module;
            OptimizationTier = OptimizationTier.Unknown;

            // Check for the optimization tier. The symbol would contain the optimization tier in the form:
            //   Symbol[OptimizationTier]
            // Save the optimization tier so that it can be put onto the front of the frame if present.
            if (symbol != null && symbol.Length >= 3 && symbol[symbol.Length - 1] == ']')
            {
                int openBracketIndex = symbol.LastIndexOf('[', symbol.Length - 2);
                if (openBracketIndex >= 0 && symbol.Length - openBracketIndex > 2)
                {
                    var optimizationTierStr = symbol.Substring(openBracketIndex + 1, symbol.Length - openBracketIndex - 2);
                    if (Enum.TryParse <OptimizationTier>(optimizationTierStr, out var optimizationTier))
                    {
                        symbol           = symbol.Substring(0, openBracketIndex);
                        OptimizationTier = optimizationTier;
                    }
                }
            }

            Symbol = symbol;
        }