63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
// dnlib: See LICENSE.txt for more info
|
|
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Text;
|
|
using dnlib.DotNet.Pdb.Symbols;
|
|
|
|
namespace dnlib.DotNet.Pdb.Portable {
|
|
[DebuggerDisplay("{GetDebuggerString(),nq}")]
|
|
sealed class SymbolDocumentImpl : SymbolDocument {
|
|
readonly string url;
|
|
/*readonly*/ Guid language;
|
|
/*readonly*/ Guid languageVendor;
|
|
/*readonly*/ Guid documentType;
|
|
/*readonly*/ Guid checkSumAlgorithmId;
|
|
readonly byte[] checkSum;
|
|
readonly PdbCustomDebugInfo[] customDebugInfos;
|
|
MDToken mdToken;
|
|
|
|
string GetDebuggerString() {
|
|
var sb = new StringBuilder();
|
|
if (language == PdbDocumentConstants.LanguageCSharp)
|
|
sb.Append("C#");
|
|
else if (language == PdbDocumentConstants.LanguageVisualBasic)
|
|
sb.Append("VB");
|
|
else if (language == PdbDocumentConstants.LanguageFSharp)
|
|
sb.Append("F#");
|
|
else
|
|
sb.Append(language.ToString());
|
|
sb.Append(", ");
|
|
if (checkSumAlgorithmId == PdbDocumentConstants.HashSHA1)
|
|
sb.Append("SHA-1");
|
|
else if (checkSumAlgorithmId == PdbDocumentConstants.HashSHA256)
|
|
sb.Append("SHA-256");
|
|
else
|
|
sb.Append(checkSumAlgorithmId.ToString());
|
|
sb.Append(": ");
|
|
sb.Append(url);
|
|
return sb.ToString();
|
|
}
|
|
|
|
public override string URL => url;
|
|
public override Guid Language => language;
|
|
public override Guid LanguageVendor => languageVendor;
|
|
public override Guid DocumentType => documentType;
|
|
public override Guid CheckSumAlgorithmId => checkSumAlgorithmId;
|
|
public override byte[] CheckSum => checkSum;
|
|
public override PdbCustomDebugInfo[] CustomDebugInfos => customDebugInfos;
|
|
public override MDToken? MDToken => mdToken;
|
|
|
|
public SymbolDocumentImpl(string url, Guid language, Guid languageVendor, Guid documentType, Guid checkSumAlgorithmId, byte[] checkSum, PdbCustomDebugInfo[] customDebugInfos, MDToken mdToken) {
|
|
this.url = url;
|
|
this.language = language;
|
|
this.languageVendor = languageVendor;
|
|
this.documentType = documentType;
|
|
this.checkSumAlgorithmId = checkSumAlgorithmId;
|
|
this.checkSum = checkSum;
|
|
this.customDebugInfos = customDebugInfos;
|
|
this.mdToken = mdToken;
|
|
}
|
|
}
|
|
}
|