Browse Source

* fixed the stack traces (StackTop initialization) under go32v2 as well

git-svn-id: trunk@25875 -
nickysn 11 years ago
parent
commit
611358be7e
1 changed files with 5 additions and 1 deletions
  1. 5 1
      rtl/go32v2/system.pp

+ 5 - 1
rtl/go32v2/system.pp

@@ -642,8 +642,12 @@ end;
 var
 var
   temp_int : tseginfo;
   temp_int : tseginfo;
 Begin
 Begin
-  StackLength := CheckInitialStkLen(InitialStkLen);
+{ v2prt0.as adds 256 bytes to __stkbottom for extra safety during stack
+  checking, so we subtract 256 here in order to calculate StackTop correctly
+  and to ensure that StackLength = StackTop - StackBottom }
+  StackLength := CheckInitialStkLen(InitialStkLen)-256;
   StackBottom := __stkbottom;
   StackBottom := __stkbottom;
+  StackTop := StackBottom + StackLength;
   { To be set if this is a GUI or console application }
   { To be set if this is a GUI or console application }
   IsConsole := TRUE;
   IsConsole := TRUE;
   { To be set if this is a library and not a program  }
   { To be set if this is a library and not a program  }