StackProber.h 809 B

12345678910111213141516171819202122232425
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. class StackProber
  7. {
  8. public:
  9. void Initialize();
  10. size_t GetScriptStackLimit() const { return stackLimit; }
  11. #if DBG
  12. void AdjustKnownStackLimit(size_t sp, size_t size)
  13. {
  14. if (knownStackLimit == 0) knownStackLimit = sp - size;
  15. knownStackLimit = ((sp - size) < knownStackLimit) ? (sp - size) : knownStackLimit;
  16. }
  17. #endif
  18. private:
  19. size_t stackLimit;
  20. #if DBG
  21. size_t knownStackLimit;
  22. #endif
  23. };