using System; using System.Collections.Generic; using Globalization = System.Globalization; using System.Linq; using System.Text; using Microsoft.Build.Framework; using System.IO; using Microsoft.Build.Utilities; using System.Diagnostics; using Cosmos.Debug.Common; namespace Cosmos.Build.MSBuild { public class ExtractMapFromElfFile : BaseToolTask { [Required] public string InputFile { get; set; } [Required] public string DebugInfoFile { get; set; } [Required] public string WorkingDir { get; set; } [Required] public string CosmosBuildDir { get; set; } public override bool Execute() { // Important! A given address can have more than one label. // Do NOT filter by duplicate addresses as this causes serious lookup problems. string xSymbolString; //TODO: This reads the file (13MB currently) into RAM... // Thats not needed.. read it line by line instead. Wait till we move to direct // DB only use though as we can do this at one time. if (!RunObjDump(out xSymbolString)) { return false; } var xLabels = new List