public async Task <List <ulong> > StartAddressesForLine(string file, uint line)
        {
            List <ulong> addresses = new List <ulong>();
            var          srcLines  = await SourceLineCache.GetLinesForFile(file);

            if (srcLines == null || srcLines.Length == 0)
            {
                srcLines = await SourceLineCache.GetLinesForFile(System.IO.Path.GetFileName(file));
            }
            if (srcLines != null && srcLines.Length > 0)
            {
                bool gotoNextFunc = false;
                foreach (var l in srcLines)
                {
                    if (gotoNextFunc)
                    {
                        if (l.Line == 0)
                        {
                            gotoNextFunc = false;
                        }
                    }
                    else if (line == l.Line)
                    {
                        addresses.Add(l.AddrStart);
                        gotoNextFunc = true;
                    }
                }
            }
            if (addresses.Count == 0)
            {
                // ask the underlying debugger for the line info
                addresses = await MICommandFactory.StartAddressesForLine(EscapePath(file), line);
            }
            return(addresses);
        }