SBLineEntry.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //===-- SBLineEntry.h -------------------------------------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #ifndef LLDB_API_SBLINEENTRY_H
  9. #define LLDB_API_SBLINEENTRY_H
  10. #include "lldb/API/SBAddress.h"
  11. #include "lldb/API/SBDefines.h"
  12. #include "lldb/API/SBFileSpec.h"
  13. namespace lldb {
  14. class LLDB_API SBLineEntry {
  15. public:
  16. SBLineEntry();
  17. SBLineEntry(const lldb::SBLineEntry &rhs);
  18. ~SBLineEntry();
  19. const lldb::SBLineEntry &operator=(const lldb::SBLineEntry &rhs);
  20. lldb::SBAddress GetStartAddress() const;
  21. lldb::SBAddress GetEndAddress() const;
  22. explicit operator bool() const;
  23. bool IsValid() const;
  24. lldb::SBFileSpec GetFileSpec() const;
  25. uint32_t GetLine() const;
  26. uint32_t GetColumn() const;
  27. void SetFileSpec(lldb::SBFileSpec filespec);
  28. void SetLine(uint32_t line);
  29. void SetColumn(uint32_t column);
  30. bool operator==(const lldb::SBLineEntry &rhs) const;
  31. bool operator!=(const lldb::SBLineEntry &rhs) const;
  32. bool GetDescription(lldb::SBStream &description);
  33. protected:
  34. lldb_private::LineEntry *get();
  35. private:
  36. friend class SBAddress;
  37. friend class SBCompileUnit;
  38. friend class SBFrame;
  39. friend class SBSymbolContext;
  40. const lldb_private::LineEntry *operator->() const;
  41. lldb_private::LineEntry &ref();
  42. const lldb_private::LineEntry &ref() const;
  43. SBLineEntry(const lldb_private::LineEntry *lldb_object_ptr);
  44. void SetLineEntry(const lldb_private::LineEntry &lldb_object_ref);
  45. std::unique_ptr<lldb_private::LineEntry> m_opaque_up;
  46. };
  47. } // namespace lldb
  48. #endif // LLDB_API_SBLINEENTRY_H