StackID.cpp revision 33ed170599d41fe407a4dcf5f0875c75e1ad1375
1//===-- StackID.cpp ---------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#include "lldb/Target/StackID.h" 11 12// C Includes 13// C++ Includes 14// Other libraries and framework includes 15// Project includes 16 17using namespace lldb_private; 18 19//---------------------------------------------------------------------- 20// StackID constructor 21//---------------------------------------------------------------------- 22StackID::StackID() : 23 m_start_address(), 24 m_cfa (0), 25 m_inline_height (0) 26{ 27} 28 29//---------------------------------------------------------------------- 30// StackID constructor with args 31//---------------------------------------------------------------------- 32StackID::StackID (const Address& start_address, lldb::addr_t cfa, uint32_t inline_id) : 33 m_start_address (start_address), 34 m_cfa (cfa), 35 m_inline_height (inline_id) 36{ 37} 38 39StackID::StackID (lldb::addr_t cfa, uint32_t inline_id) : 40 m_start_address (), 41 m_cfa (cfa), 42 m_inline_height (inline_id) 43{ 44} 45 46//---------------------------------------------------------------------- 47// StackID copy constructor 48//---------------------------------------------------------------------- 49StackID::StackID(const StackID& rhs) : 50 m_start_address (rhs.m_start_address), 51 m_cfa (rhs.m_cfa), 52 m_inline_height (rhs.m_inline_height) 53{ 54} 55 56//---------------------------------------------------------------------- 57// StackID assignment operator 58//---------------------------------------------------------------------- 59const StackID& 60StackID::operator=(const StackID& rhs) 61{ 62 if (this != &rhs) 63 { 64 m_start_address = rhs.m_start_address; 65 m_cfa = rhs.m_cfa; 66 m_inline_height = rhs.m_inline_height; 67 } 68 return *this; 69} 70 71//---------------------------------------------------------------------- 72// Destructor 73//---------------------------------------------------------------------- 74StackID::~StackID() 75{ 76} 77 78bool 79lldb_private::operator== (const StackID& lhs, const StackID& rhs) 80{ 81 return lhs.GetCallFrameAddress() == rhs.GetCallFrameAddress() && 82 lhs.GetInlineHeight() == rhs.GetInlineHeight() && 83 lhs.GetStartAddress() == rhs.GetStartAddress(); 84} 85 86bool 87lldb_private::operator!= (const StackID& lhs, const StackID& rhs) 88{ 89 return lhs.GetCallFrameAddress() != rhs.GetCallFrameAddress() || 90 lhs.GetInlineHeight() != rhs.GetInlineHeight() || 91 lhs.GetStartAddress() != rhs.GetStartAddress(); 92} 93 94bool 95lldb_private::operator< (const StackID& lhs, const StackID& rhs) 96{ 97 return lhs.GetCallFrameAddress() < rhs.GetCallFrameAddress(); 98} 99 100