summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/r2rdump/Amd64/UnwindInfo.cs5
-rw-r--r--src/tools/r2rdump/NativeReader.cs18
-rw-r--r--src/tools/r2rdump/R2RMethod.cs8
-rw-r--r--src/tools/r2rdump/R2RReader.cs10
-rw-r--r--src/tools/r2rdump/x86/UnwindInfo.cs29
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GcInfoTransitions.xml24
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GenericFunctions.xml40
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/HelloWorld.xml16
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/MultipleRuntimeFunctions.xml16
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GcInfoTransitions.xml24
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GenericFunctions.xml40
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/HelloWorld.xml16
-rw-r--r--tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/MultipleRuntimeFunctions.xml16
13 files changed, 233 insertions, 29 deletions
diff --git a/src/tools/r2rdump/Amd64/UnwindInfo.cs b/src/tools/r2rdump/Amd64/UnwindInfo.cs
index 4f7bb45ef0..1bc8308ca6 100644
--- a/src/tools/r2rdump/Amd64/UnwindInfo.cs
+++ b/src/tools/r2rdump/Amd64/UnwindInfo.cs
@@ -62,7 +62,7 @@ namespace R2RDump.Amd64
}
}
- public struct UnwindInfo : BaseUnwindInfo
+ public class UnwindInfo : BaseUnwindInfo
{
private const int _sizeofUnwindCode = 2;
private const int _offsetofUnwindCode = 4;
@@ -75,7 +75,8 @@ namespace R2RDump.Amd64
public byte FrameOffset { get; set; } //4 bits
public UnwindCode[] UnwindCode { get; set; }
public uint PersonalityRoutineRVA { get; set; }
- public int Size { get; set; }
+
+ public UnwindInfo() { }
public UnwindInfo(byte[] image, int offset)
{
diff --git a/src/tools/r2rdump/NativeReader.cs b/src/tools/r2rdump/NativeReader.cs
index 5839580d03..c55d48ba55 100644
--- a/src/tools/r2rdump/NativeReader.cs
+++ b/src/tools/r2rdump/NativeReader.cs
@@ -304,5 +304,23 @@ namespace R2RDump
}
return data;
}
+
+ /// <summary>
+ /// Based on decodeUnsigned in gcdecoder.cpp, used by the x86 gcdump and unwindinfo
+ /// </summary>
+ public static uint DecodeUnsignedGc(byte[] image, ref int start)
+ {
+ int size = 1;
+ byte data = image[start++];
+ uint value = (uint)data & 0x7f;
+ while ((data & 0x80) != 0)
+ {
+ size++;
+ data = image[start++];
+ value <<= 7;
+ value += (uint)data & 0x7f;
+ }
+ return value;
+ }
}
}
diff --git a/src/tools/r2rdump/R2RMethod.cs b/src/tools/r2rdump/R2RMethod.cs
index 5cd8c3a2e8..788ebbb2e8 100644
--- a/src/tools/r2rdump/R2RMethod.cs
+++ b/src/tools/r2rdump/R2RMethod.cs
@@ -13,9 +13,9 @@ using System.Xml.Serialization;
namespace R2RDump
{
- public interface BaseUnwindInfo
+ public abstract class BaseUnwindInfo
{
-
+ public int Size { get; set; }
}
public class RuntimeFunction
@@ -67,6 +67,10 @@ namespace R2RDump
{
Size = endRva - startRva;
}
+ else if (unwindInfo is x86.UnwindInfo)
+ {
+ Size = (int)((x86.UnwindInfo)unwindInfo).FunctionLength;
+ }
else if (gcInfo != null)
{
Size = gcInfo.CodeLength;
diff --git a/src/tools/r2rdump/R2RReader.cs b/src/tools/r2rdump/R2RReader.cs
index 9b2940d671..25568b0999 100644
--- a/src/tools/r2rdump/R2RReader.cs
+++ b/src/tools/r2rdump/R2RReader.cs
@@ -306,7 +306,15 @@ namespace R2RDump
unwindInfo = new Amd64.UnwindInfo(Image, unwindOffset);
if (isEntryPoint[runtimeFunctionId])
{
- gcInfo = new GcInfo(Image, unwindOffset + ((Amd64.UnwindInfo)unwindInfo).Size, Machine, R2RHeader.MajorVersion);
+ gcInfo = new GcInfo(Image, unwindOffset + unwindInfo.Size, Machine, R2RHeader.MajorVersion);
+ }
+ }
+ else if (Machine == Machine.I386)
+ {
+ unwindInfo = new x86.UnwindInfo(Image, unwindOffset);
+ if (isEntryPoint[runtimeFunctionId])
+ {
+ //gcInfo = new GcInfo(Image, unwindOffset + unwindInfo.Size, Machine, R2RHeader.MajorVersion);
}
}
diff --git a/src/tools/r2rdump/x86/UnwindInfo.cs b/src/tools/r2rdump/x86/UnwindInfo.cs
new file mode 100644
index 0000000000..7f617f0704
--- /dev/null
+++ b/src/tools/r2rdump/x86/UnwindInfo.cs
@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.Text;
+using System.Xml.Serialization;
+
+namespace R2RDump.x86
+{
+ public class UnwindInfo : BaseUnwindInfo
+ {
+ public uint FunctionLength { get; set; }
+
+ public UnwindInfo() { }
+
+ public UnwindInfo(byte[] image, int offset)
+ {
+ FunctionLength = NativeReader.DecodeUnsignedGc(image, ref offset);
+ Size = sizeof(int);
+ }
+
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine($"\tFunctionLength: {FunctionLength}");
+ return sb.ToString();
+ }
+ }
+}
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GcInfoTransitions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GcInfoTransitions.xml
index a9ede3175e..eb2dc12885 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GcInfoTransitions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GcInfoTransitions.xml
@@ -180,10 +180,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10200</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10420</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -201,10 +207,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10208</StartAddress>
- <Size>0</Size>
+ <Size>127</Size>
<UnwindRVA>10424</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>127</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -222,10 +234,16 @@
<MethodRid>3</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="2">
<StartAddress>10336</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10420</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GenericFunctions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GenericFunctions.xml
index 4e37c5b60a..119e0c4756 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GenericFunctions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/GenericFunctions.xml
@@ -160,10 +160,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10380</StartAddress>
- <Size>0</Size>
+ <Size>8</Size>
<UnwindRVA>10528</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>8</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -181,10 +187,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10388</StartAddress>
- <Size>0</Size>
+ <Size>9</Size>
<UnwindRVA>10532</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>9</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -208,10 +220,16 @@
<MethodRid>4</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="3">
<StartAddress>10412</StartAddress>
- <Size>0</Size>
+ <Size>19</Size>
<UnwindRVA>10542</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>19</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -229,10 +247,16 @@
<MethodRid>5</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="4">
<StartAddress>10432</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10546</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -250,10 +274,16 @@
<MethodRid>3</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="2">
<StartAddress>10400</StartAddress>
- <Size>0</Size>
+ <Size>10</Size>
<UnwindRVA>10536</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>10</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/HelloWorld.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/HelloWorld.xml
index 2f9bbef1a4..88feff4b53 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/HelloWorld.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/HelloWorld.xml
@@ -193,10 +193,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10096</StartAddress>
- <Size>0</Size>
+ <Size>20</Size>
<UnwindRVA>10180</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>20</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -214,10 +220,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10116</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10184</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/MultipleRuntimeFunctions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/MultipleRuntimeFunctions.xml
index 64ae247527..44d42f447a 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/MultipleRuntimeFunctions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Checked/MultipleRuntimeFunctions.xml
@@ -123,10 +123,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10016</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10076</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -144,10 +150,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10024</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10076</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GcInfoTransitions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GcInfoTransitions.xml
index a9ede3175e..eb2dc12885 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GcInfoTransitions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GcInfoTransitions.xml
@@ -180,10 +180,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10200</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10420</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -201,10 +207,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10208</StartAddress>
- <Size>0</Size>
+ <Size>127</Size>
<UnwindRVA>10424</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>127</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -222,10 +234,16 @@
<MethodRid>3</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="2">
<StartAddress>10336</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10420</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GenericFunctions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GenericFunctions.xml
index 4e37c5b60a..119e0c4756 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GenericFunctions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/GenericFunctions.xml
@@ -160,10 +160,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10380</StartAddress>
- <Size>0</Size>
+ <Size>8</Size>
<UnwindRVA>10528</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>8</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -181,10 +187,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10388</StartAddress>
- <Size>0</Size>
+ <Size>9</Size>
<UnwindRVA>10532</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>9</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -208,10 +220,16 @@
<MethodRid>4</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="3">
<StartAddress>10412</StartAddress>
- <Size>0</Size>
+ <Size>19</Size>
<UnwindRVA>10542</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>19</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -229,10 +247,16 @@
<MethodRid>5</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="4">
<StartAddress>10432</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10546</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -250,10 +274,16 @@
<MethodRid>3</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="2">
<StartAddress>10400</StartAddress>
- <Size>0</Size>
+ <Size>10</Size>
<UnwindRVA>10536</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>10</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/HelloWorld.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/HelloWorld.xml
index 2f9bbef1a4..88feff4b53 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/HelloWorld.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/HelloWorld.xml
@@ -193,10 +193,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10096</StartAddress>
- <Size>0</Size>
+ <Size>20</Size>
<UnwindRVA>10180</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>20</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -214,10 +220,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10116</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10184</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
diff --git a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/MultipleRuntimeFunctions.xml b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/MultipleRuntimeFunctions.xml
index 64ae247527..44d42f447a 100644
--- a/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/MultipleRuntimeFunctions.xml
+++ b/tests/src/readytorun/r2rdump/files/Windows_NT.x86.Release/MultipleRuntimeFunctions.xml
@@ -123,10 +123,16 @@
<MethodRid>1</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="0">
<StartAddress>10016</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10076</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>
@@ -144,10 +150,16 @@
<MethodRid>2</MethodRid>
<RuntimeFunction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Index="1">
<StartAddress>10024</StartAddress>
- <Size>0</Size>
+ <Size>6</Size>
<UnwindRVA>10076</UnwindRVA>
<CodeOffset>0</CodeOffset>
</RuntimeFunction>
+ <UnwindInfo>
+ <UnwindInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Size>4</Size>
+ <FunctionLength>6</FunctionLength>
+ </UnwindInfo>
+ </UnwindInfo>
</RuntimeFunction>
</RuntimeFunctions>
</Method>