124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBFunction.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_SBFunction_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBFunction_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 1489f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton#include "lldb/API/SBAddress.h" 155c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton#include "lldb/API/SBInstructionList.h" 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBFunction 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBFunction (); 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 25538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBFunction (const lldb::SBFunction &rhs); 26538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 27538eb82a89a68dbc57251915080bd5152b333978Greg Clayton const lldb::SBFunction & 28538eb82a89a68dbc57251915080bd5152b333978Greg Clayton operator = (const lldb::SBFunction &rhs); 29538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBFunction (); 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid () const; 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const char * 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetName() const; 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const char * 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetMangledName () const; 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 415c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton lldb::SBInstructionList 425c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton GetInstructions (lldb::SBTarget target); 435c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton 447d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham lldb::SBInstructionList 457d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham GetInstructions (lldb::SBTarget target, const char *flavor); 467d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham 477dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton lldb::SBAddress 4889f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton GetStartAddress (); 4989f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton 507dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton lldb::SBAddress 5189f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton GetEndAddress (); 5289f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton 5389f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton uint32_t 5489f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton GetPrologueByteSize (); 5589f1aa732c8b1df90cbbfe116b6f06cf80a25ae3Greg Clayton 567dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton lldb::SBType 577dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton GetType (); 587dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton 597dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton lldb::SBBlock 607dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton GetBlock (); 617dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator == (const lldb::SBFunction &rhs) const; 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator != (const lldb::SBFunction &rhs) const; 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6898f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice bool 6998f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice GetDescription (lldb::SBStream &description); 7098f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice 7161ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Ticeprotected: 7261ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice 7361ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice lldb_private::Function * 7461ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice get (); 7561ba7ec20f616f907473dd501341cef5b47fa3f8Caroline Tice 76dd62d729cf960051615a74c1e67e2e41ec789fd7Greg Clayton void 77dd62d729cf960051615a74c1e67e2e41ec789fd7Greg Clayton reset (lldb_private::Function *lldb_object_ptr); 78dd62d729cf960051615a74c1e67e2e41ec789fd7Greg Clayton 7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 80c51ffbf896e398ada5f7e89b2fa5aec6f2224f09Greg Clayton friend class SBAddress; 8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBFrame; 8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBSymbolContext; 8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBFunction (lldb_private::Function *lldb_object_ptr); 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8763094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::Function *m_opaque_ptr; 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBFunction_h_ 94