cmDebuggerStackFrame.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <atomic>
  6. #include <cstdint>
  7. #include <string>
  8. #include <vector>
  9. class cmListFileFunction;
  10. struct cmListFileArgument;
  11. class cmMakefile;
  12. namespace cmDebugger {
  13. class cmDebuggerStackFrame
  14. {
  15. static std::atomic<std::int64_t> NextId;
  16. std::int64_t Id;
  17. std::string FileName;
  18. cmListFileFunction const& Function;
  19. cmMakefile* Makefile;
  20. public:
  21. cmDebuggerStackFrame(cmMakefile* mf, std::string sourcePath,
  22. cmListFileFunction const& lff);
  23. int64_t GetId() const noexcept { return this->Id; }
  24. std::string const& GetFileName() const noexcept { return this->FileName; }
  25. int64_t GetLine() const noexcept;
  26. cmMakefile* GetMakefile() const noexcept { return this->Makefile; }
  27. cmListFileFunction const& GetFunction() const noexcept
  28. {
  29. return this->Function;
  30. }
  31. std::vector<cmListFileArgument> const& GetArguments() const noexcept;
  32. };
  33. } // namespace cmDebugger