Could someone explain to me why this piece of code is doing well when I execute it on a x86 platform and why it fail on x64 ?
Results :
If I change something, like removing one of the unused variables, or if I remove the useless for-loop after p_lFirstId++, the strange behavior disappear.
I found that changing "pdb-only" to "full" in my release configuration, it's work again.
If you run the code directly from visual studio, it's doing well too.
Is this a JIT Compiler bug ?
Thank you in advance.
class Program
{
static void Main(string[] args)
{
Test(null, null, null, 0, 1);
}
public static void Test(
List<string> liste, List<string> unused1,
string unused2, int unused3, long p_lFirstId)
{
liste = new List<string>();
StringBuilder sbSql = new StringBuilder();
for (int i = 0 ; i < 10 ; i++)
{
sbSql.Append(p_lFirstId);
p_lFirstId++;
foreach (string sColonne in liste)
{
}
}
System.Console.WriteLine(sbSql.ToString());
}
}
Static variables have a property of preserving their value even after they are out of their scope! Hence, static variables preserve their previous value in their previous scope and are not initialized again in the new scope.
Incremental Variables. Incremental variables allow you to generate a sequence of numbers or dates to use in user scenarios. Each incremental variable has an initial value and an increment step and updates its value at certain times (for example, on each use).
++i; --i; increment or decrement occurs before the variable's value is used in the remainder of the expression. increment or decrement occurs after the variable's value is used in the remainder of the expression.
1. The process of increasing or decreasing a numeric value by another value. For example, incrementing 2 to 10 by the number 2 would be 2, 4, 6, 8, 10. 2. An increment is also a programming operator to increase the value of a numerical value.
This is a bug in the CLR. I would advise contacting Microsoft and asking them to correct this bug in their next release.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With