124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- AddressResolverFileLine.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 liblldb_AddressResolverFileLine_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_AddressResolverFileLine_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Project includes 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Core/AddressResolver.h" 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb_private { 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @class AddressResolverFileLine AddressResolverFileLine.h "lldb/Core/AddressResolverFileLine.h" 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @brief This class finds address for source file and line. Optionally, it will look for inlined 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// instances of the file and line specification. 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass AddressResolverFileLine : 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner public AddressResolver 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner AddressResolverFileLine (const FileSpec &resolver, 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t line_no, 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool check_inlines); 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~AddressResolverFileLine (); 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::CallbackReturn 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SearchCallback (SearchFilter &filter, 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SymbolContext &context, 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Address *addr, 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool containing); 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual Searcher::Depth 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDepth (); 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetDescription (Stream *s); 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner FileSpec m_file_spec; // This is the file spec we are looking for. 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t m_line_number; // This is the line number that we are looking for. 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool m_inlines; // This determines whether the resolver looks for inlined functions or not. 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DISALLOW_COPY_AND_ASSIGN(AddressResolverFileLine); 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb_private 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // liblldb_AddressResolverFileLine_h_ 60