SBBlock.h revision 69aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBBlock.h -----------------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef LLDB_SBBlock_h_
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBBlock_h_
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h"
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb {
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBBlock
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic:
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SBBlock ();
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    ~SBBlock ();
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
2669aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    IsInlined () const;
2769aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
2869aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    bool
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    IsValid () const;
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3169aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    const char *
3269aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetInlinedName () const;
3369aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
3469aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    lldb::SBFileSpec
3569aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetInlinedCallSiteFile () const;
3669aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
3769aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    uint32_t
3869aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetInlinedCallSiteLine () const;
3969aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
4069aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    uint32_t
4169aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetInlinedCallSiteColumn () const;
4269aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
4369aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    lldb::SBBlock
4469aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetParent ();
4569aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
4669aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    lldb::SBBlock
4769aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetSibling ();
4869aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
4969aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    lldb::SBBlock
5069aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    GetFirstChild ();
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate:
5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBFrame;
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBSymbolContext;
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5669aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton#ifndef SWIG
5769aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SBBlock (lldb_private::Block *lldb_object_ptr);
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6069aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    void
6169aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton    AppendVariables (bool can_create, bool get_parent_variables, lldb_private::VariableList *var_list);
6269aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton
6369aa5d9a7620a183cdc4da12cc87ea82e2ffcbf9Greg Clayton#endif
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6563094e0bb161580564954dee512955c1c79d3476Greg Clayton    lldb_private::Block *m_opaque_ptr;
6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBBlock_h_
72