crashanalysercmd/UI/CrashServer/Engine/CACmdLineEngine.cs
changeset 3 045ade241ef5
parent 2 0c91f0baec58
equal deleted inserted replaced
2:0c91f0baec58 3:045ade241ef5
    38 using SymbianXmlInputLib.Elements.Types.FileSystem;
    38 using SymbianXmlInputLib.Elements.Types.FileSystem;
    39 using SymbianXmlInputLib.Elements.Types.Command;
    39 using SymbianXmlInputLib.Elements.Types.Command;
    40 using SymbianDebugLib;
    40 using SymbianDebugLib;
    41 using SymbianDebugLib.Engine;
    41 using SymbianDebugLib.Engine;
    42 using SymbianDebugLib.Entity;
    42 using SymbianDebugLib.Entity;
       
    43 using SymbianDebugLib.Entity.Configurations;
    43 using SymbianUtils;
    44 using SymbianUtils;
    44 using SymbianUtils.Tracer;
    45 using SymbianUtils.Tracer;
    45 using CrashItemLib.Crash.InfoSW;
    46 using CrashItemLib.Crash.InfoSW;
    46 using MobileCrashLib;
    47 using MobileCrashLib;
    47 using MobileCrashLib.Parser;
    48 using MobileCrashLib.Parser;
   351             {
   352             {
   352                 debugEngine.Clear();
   353                 debugEngine.Clear();
   353 
   354 
   354                 foreach (CACmdLineFileSource file in iInputs.SourceFiles)
   355                 foreach (CACmdLineFileSource file in iInputs.SourceFiles)
   355                 {
   356                 {
       
   357                     // Tell all used RomIds to debugEngine.  
   356                     if (file.RomId != null)
   358                     if (file.RomId != null)
   357                         debugEngine.AddActiveRomId(file.RomId.Value);
   359                         debugEngine.AddActiveRomId(file.RomId.Value);
       
   360                     
       
   361                     // Tell all RomIds which needs symbols to debugEngine so that 
       
   362                     // we load only symbols for those.
       
   363                     if (file.ContentType == TMobileCrashContentType.EContentTypePanic ||
       
   364                         file.ContentType == TMobileCrashContentType.EContentTypeException)
       
   365                         debugEngine.AddSymbolRomId(file.RomId.Value);                     
   358                 }
   366                 }
   359 
   367 
   360                 foreach ( CACmdLineFSEntity entry in metaDataFiles )
   368                 foreach ( CACmdLineFSEntity entry in metaDataFiles )
   361                 {
   369                 {
   362                     Trace( "[CA Cmd] Seeding debug meta engine with entry: " + entry.Name );
   370                     Trace( "[CA Cmd] Seeding debug meta engine with entry: " + entry.Name );
   777             {
   785             {
   778                 file.CopyMessagesToContainer( aContainer );
   786                 file.CopyMessagesToContainer( aContainer );
   779             }
   787             }
   780         }
   788         }
   781 
   789 
   782 
   790         // Returns true if there exists symbols
   783         private bool ContainsSymbols( CIContainer aContainer )
   791         private bool ContainsSymbols( CIContainer aContainer )
   784         {
   792         {
   785             bool retval = false;
   793             DbgEntityConfig config = null;
   786             if (aContainer.FileNames.Length > 1)
   794             CIInfoSW info = (CIInfoSW)aContainer.ChildByType(typeof(CIInfoSW));
   787             {
   795             if(info != null)
   788                 retval = true;
   796                 config = aContainer.Engine.DebugEngine.ConfigManager.ConfigById(new DbgEntityConfigIdentifier(info.ImageCheckSum));
   789             }
   797 
   790             return retval;
   798             return (config != null || iInputs.SymbolsGiven);
   791 
       
   792         }
   799         }
   793 
   800 
   794         private bool IsSymbollessMobileCrash(CIContainer aContainer)
   801         private bool IsSymbollessMobileCrash(CIContainer aContainer)
   795         {
   802         {
   796             bool retval = false;
   803             bool retval = false;
   892                 }
   899                 }
   893                 
   900                 
   894             } 
   901             } 
   895 
   902 
   896             // Move the file.
   903             // Move the file.
   897             System.Console.WriteLine("Moving file " + aFile.Name + " to " + newName);
   904             if (!iInputs.NotMovingFiles)
   898             if (!iInputs.TestWithoutMovingFiles)
   905             {
   899             {
   906                 System.Console.WriteLine("Moving file " + aFile.Name + " to " + newName);
   900                 File.Move(aFile.Name, newName);
   907                 File.Move(aFile.Name, newName);
   901                 if (!File.Exists(newName))
   908                 if (!File.Exists(newName))
   902                 {
   909                 {
   903                     System.Console.WriteLine("Error: unable to move file " +aFile.Name +" to " +newName );
   910                     System.Console.WriteLine("Error: unable to move file " +aFile.Name +" to " +newName );
   904                 }
   911                 }