src/Microsoft.SymbolStore/KeyGenerators/ELFFileKeyGenerator.cs
/// <summary>
/// Creates the ELF file symbol store keys.
/// </summary>
/// <param name="flags">type of keys to return</param>
/// <param name="path">file name and path</param>
/// <param name="buildId">ELF file uuid bytes</param>
/// <param name="symbolFile">if true, use the symbol file tag</param>
/// <param name="symbolFileName">name of symbol file (from .gnu_debuglink) or null</param>
/// <returns>symbol store keys</returns>
Creates the ELF file symbol store keys.
Creates the ELF file symbol store keys .
public static IEnumerable<SymbolStoreKey> GetKeys(KeyTypeFlags flags, string path, byte[] buildId, bool symbolFile, string symbolFileName)
        {
            Debug.Assert(path != null);
            Debug.Assert(buildId != null && buildId.Length == 20);
            if ((flags & KeyTypeFlags.IdentityKey) != 0)
            {
                if (symbolFile)
                {
                    yield return BuildKey(path, SymbolPrefix, buildId, "_.debug");
                }
                else
                {
                    bool clrSpecialFile = s_coreClrSpecialFiles.Contains(GetFileName(path));
                    yield return BuildKey(path, IdentityPrefix, buildId, clrSpecialFile);
                }
            }
            if (!symbolFile)
            {
                if ((flags & KeyTypeFlags.SymbolKey) != 0)
                {
                    if (string.IsNullOrEmpty(symbolFileName))
                    {
                        symbolFileName = path + SymbolFileExtension;
                    }
                    yield return BuildKey(symbolFileName, SymbolPrefix, buildId, "_.debug");
                }
                if ((flags & KeyTypeFlags.ClrKeys) != 0)
                {
                    if (GetFileName(path) == CoreClrFileName)
                    {
                        foreach (string specialFileName in s_coreClrSpecialFiles)
                        {
                            yield return BuildKey(specialFileName, CoreClrPrefix, buildId);
                        }
                    }
                }
            }
        }
public static IEnumerable < SymbolStoreKey > GetKeys ( KeyTypeFlags flags , string path , byte [ ] buildId , bool symbolFile , string symbolFileName ) { Debug . Assert ( path != null ) ; Debug . Assert ( buildId != null && buildId . Length == 20 ) ; if ( ( flags & KeyTypeFlags . IdentityKey ) != 0 ) { if ( symbolFile ) { yield return BuildKey ( path , SymbolPrefix , buildId , " " ) ; } else { bool clrSpecialFile = s_coreClrSpecialFiles . Contains ( GetFileName ( path ) ) ; yield return BuildKey ( path , IdentityPrefix , buildId , clrSpecialFile ) ; } } if ( ! symbolFile ) { if ( ( flags & KeyTypeFlags . SymbolKey ) != 0 ) { if ( string . IsNullOrEmpty ( symbolFileName ) ) { symbolFileName = path + SymbolFileExtension ; } yield return BuildKey ( symbolFileName , SymbolPrefix , buildId , " " ) ; } if ( ( flags & KeyTypeFlags . ClrKeys ) != 0 ) { if ( GetFileName ( path ) == CoreClrFileName ) { foreach ( string specialFileName in s_coreClrSpecialFiles ) { yield return BuildKey ( specialFileName , CoreClrPrefix , buildId ) ; } } } } }
Creates the ELF file symbol store keys.
Creates the ELF file symbol store keys .
/// Creates all the special CLR keys if the path is the coreclr module for this platform
symbol store keys
symbol store keys
flags
KeyTypeFlags
type of keys to return
type of keys to return
path
string
file name and path
file name and path
buildId
byte[]
ELF file uuid bytes
ELF file uuid bytes
symbolFile
bool
if true, use the symbol file tag
if true use the symbol file tag
symbolFileName
string
name of symbol file (from .gnu_debuglink) or null
name of symbol file ( from . gnu_debuglink ) or null