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 xFile = RunObjDump(); using (var xMapReader = new StreamReader(xFile)) { var xLabels = new List