Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2022-01-20 12:56:36 +0300
committerMarek Safar <marek.safar@gmail.com>2022-01-20 12:56:36 +0300
commit9fd4a5ca53cfc8baee82abe0ca1f46d489625913 (patch)
tree59f59d34864b3bf05e3e0d3bc469431b7a2aa18d
parent8417b343ebdff92f541a09f4fdae5425b8bb39a8 (diff)
Revert "Fix portable PDB stamp in CodeView header (#32)"
This reverts commit e04f1418730bdd7c8c46a13118f0cb1b5603997c.
-rw-r--r--Mono.Cecil.Cil/PortablePdb.cs10
-rw-r--r--Test/Mono.Cecil.Tests/PortablePdbTests.cs38
2 files changed, 13 insertions, 35 deletions
diff --git a/Mono.Cecil.Cil/PortablePdb.cs b/Mono.Cecil.Cil/PortablePdb.cs
index f6842da..d8c43f6 100644
--- a/Mono.Cecil.Cil/PortablePdb.cs
+++ b/Mono.Cecil.Cil/PortablePdb.cs
@@ -269,7 +269,7 @@ namespace Mono.Cecil.Cil {
internal byte [] pdb_checksum;
internal Guid pdb_id_guid;
- internal uint pdb_id_stamp;
+ internal uint pdb_id_age;
bool IsEmbedded { get { return writer == null; } }
@@ -324,7 +324,7 @@ namespace Mono.Cecil.Cil {
MajorVersion = 256,
MinorVersion = 20557,
Type = ImageDebugType.CodeView,
- TimeDateStamp = (int)pdb_id_stamp,
+ TimeDateStamp = (int)module.timestamp,
};
var buffer = new ByteBuffer ();
@@ -333,7 +333,7 @@ namespace Mono.Cecil.Cil {
// Module ID
buffer.WriteBytes (pdb_id_guid.ToByteArray ());
// PDB Age
- buffer.WriteUInt32 (1);
+ buffer.WriteUInt32 (pdb_id_age);
// PDB Path
var fileName = writer.BaseStream.GetFileName ();
if (string.IsNullOrEmpty (fileName)) {
@@ -462,7 +462,7 @@ namespace Mono.Cecil.Cil {
var hashBytes = new ByteBuffer (pdb_checksum);
pdb_id_guid = new Guid (hashBytes.ReadBytes (16));
- pdb_id_stamp = hashBytes.ReadUInt32 ();
+ pdb_id_age = hashBytes.ReadUInt32 ();
}
void WritePdbId ()
@@ -470,7 +470,7 @@ namespace Mono.Cecil.Cil {
// PDB ID is the first 20 bytes of the PdbHeap
writer.MoveToRVA (TextSegment.PdbHeap);
writer.WriteBytes (pdb_id_guid.ToByteArray ());
- writer.WriteUInt32 (pdb_id_stamp);
+ writer.WriteUInt32 (pdb_id_age);
}
}
diff --git a/Test/Mono.Cecil.Tests/PortablePdbTests.cs b/Test/Mono.Cecil.Tests/PortablePdbTests.cs
index 4b9d4eb..1401f63 100644
--- a/Test/Mono.Cecil.Tests/PortablePdbTests.cs
+++ b/Test/Mono.Cecil.Tests/PortablePdbTests.cs
@@ -885,13 +885,11 @@ class Program
using (var module = GetResourceModule (resource, new ReaderParameters { ReadSymbols = true })) {
GetPdbChecksumData (module.GetDebugHeader (), out string algorithmName, out byte [] checksum);
Assert.AreEqual ("SHA256", algorithmName);
- GetCodeViewPdbId (module, out byte[] pdbId);
- string pdbPath = Mixin.GetPdbFileName (module.FileName);
- CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] expectedPdbId);
+ string pdbPath = GetDebugHeaderPdbPath (module);
+ CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] pdbId);
CollectionAssert.AreEqual (expectedChecksum, checksum);
- CollectionAssert.AreEqual (expectedPdbId, pdbId);
}
}
@@ -904,13 +902,11 @@ class Program
var debugHeader = module.GetDebugHeader ();
GetPdbChecksumData (debugHeader, out string algorithmName, out byte [] checksum);
Assert.AreEqual ("SHA256", algorithmName);
- GetCodeViewPdbId (module, out byte [] pdbId);
GetEmbeddedPdb (debugHeader, out byte [] embeddedPdb);
- CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] expectedPdbId);
+ CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] pdbId);
CollectionAssert.AreEqual (expectedChecksum, checksum);
- CollectionAssert.AreEqual (expectedPdbId, pdbId);
}
}
@@ -927,13 +923,11 @@ class Program
using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) {
GetPdbChecksumData (module.GetDebugHeader (), out string algorithmName, out byte [] checksum);
Assert.AreEqual ("SHA256", algorithmName);
- GetCodeViewPdbId (module, out byte [] pdbId);
- string pdbPath = Mixin.GetPdbFileName (module.FileName);
- CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] expectedPdbId);
+ string pdbPath = GetDebugHeaderPdbPath (module);
+ CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out byte [] pdbId);
CollectionAssert.AreEqual (expectedChecksum, checksum);
- CollectionAssert.AreEqual (expectedPdbId, pdbId);
}
}
@@ -967,7 +961,7 @@ class Program
byte [] pdbIdOne;
using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) {
- string pdbPath = Mixin.GetPdbFileName (module.FileName);
+ string pdbPath = GetDebugHeaderPdbPath (module);
CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out pdbIdOne);
}
@@ -977,7 +971,7 @@ class Program
byte [] pdbIdTwo;
using (var module = ModuleDefinition.ReadModule (destination, new ReaderParameters { ReadSymbols = true })) {
- string pdbPath = Mixin.GetPdbFileName (module.FileName);
+ string pdbPath = GetDebugHeaderPdbPath (module);
CalculatePdbChecksumAndId (pdbPath, out byte [] expectedChecksum, out pdbIdTwo);
}
@@ -998,13 +992,11 @@ class Program
var debugHeader = module.GetDebugHeader ();
GetPdbChecksumData (debugHeader, out string algorithmName, out byte [] checksum);
Assert.AreEqual ("SHA256", algorithmName);
- GetCodeViewPdbId (module, out byte [] pdbId);
GetEmbeddedPdb (debugHeader, out byte [] embeddedPdb);
- CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] expectedPdbId);
+ CalculatePdbChecksumAndId (embeddedPdb, out byte [] expectedChecksum, out byte [] pdbId);
CollectionAssert.AreEqual (expectedChecksum, checksum);
- CollectionAssert.AreEqual (expectedPdbId, pdbId);
}
}
@@ -1110,19 +1102,5 @@ class Program
var sha256 = SHA256.Create ();
pdbChecksum = sha256.ComputeHash (bytes);
}
-
- static void GetCodeViewPdbId (ModuleDefinition module, out byte[] pdbId)
- {
- var header = module.GetDebugHeader ();
- var cv = Mixin.GetCodeViewEntry (header);
- Assert.IsNotNull (cv);
-
- CollectionAssert.AreEqual (new byte [] { 0x52, 0x53, 0x44, 0x53 }, cv.Data.Take (4));
-
- ByteBuffer buffer = new ByteBuffer (20);
- buffer.WriteBytes (cv.Data.Skip (4).Take (16).ToArray ());
- buffer.WriteInt32 (cv.Directory.TimeDateStamp);
- pdbId = buffer.buffer;
- }
}
}