LLDB  mainline
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | List of all members
lldb_private::InstrumentationRuntimeTSan Class Reference

#include <InstrumentationRuntimeTSan.h>

Inheritance diagram for lldb_private::InstrumentationRuntimeTSan:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::InstrumentationRuntimeTSan:
Collaboration graph
[legend]

Public Member Functions

 ~InstrumentationRuntimeTSan () override
 
llvm::StringRef GetPluginName () override
 
virtual lldb::InstrumentationRuntimeType GetType ()
 
lldb::ThreadCollectionSP GetBacktracesFromExtendedStopInfo (StructuredData::ObjectSP info) override
 
- Public Member Functions inherited from lldb_private::InstrumentationRuntime
void ModulesDidLoad (lldb_private::ModuleList &module_list)
 Look for the instrumentation runtime in module_list. More...
 
bool IsActive () const
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static lldb::InstrumentationRuntimeSP CreateInstance (const lldb::ProcessSP &process_sp)
 
static void Initialize ()
 
static void Terminate ()
 
static lldb_private::ConstString GetPluginNameStatic ()
 
static lldb::InstrumentationRuntimeType GetTypeStatic ()
 
- Static Public Member Functions inherited from lldb_private::InstrumentationRuntime
static void ModulesDidLoad (lldb_private::ModuleList &module_list, Process *process, InstrumentationRuntimeCollection &runtimes)
 

Private Member Functions

 InstrumentationRuntimeTSan (const lldb::ProcessSP &process_sp)
 
const RegularExpressionGetPatternForRuntimeLibrary () override
 Return a regular expression which can be used to identify a valid version of the runtime library. More...
 
bool CheckIfRuntimeIsValid (const lldb::ModuleSP module_sp) override
 Check whether module_sp corresponds to a valid runtime library. More...
 
void Activate () override
 Register a breakpoint in the runtime library and perform any other necessary initialization. More...
 
void Deactivate ()
 
StructuredData::ObjectSP RetrieveReportData (ExecutionContextRef exe_ctx_ref)
 
std::string FormatDescription (StructuredData::ObjectSP report)
 
std::string GenerateSummary (StructuredData::ObjectSP report)
 
lldb::addr_t GetMainRacyAddress (StructuredData::ObjectSP report)
 
std::string GetLocationDescription (StructuredData::ObjectSP report, lldb::addr_t &global_addr, std::string &global_name, std::string &filename, uint32_t &line)
 
lldb::addr_t GetFirstNonInternalFramePc (StructuredData::ObjectSP trace, bool skip_one_frame=false)
 

Static Private Member Functions

static bool NotifyBreakpointHit (void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
 

Additional Inherited Members

- Protected Member Functions inherited from lldb_private::InstrumentationRuntime
 InstrumentationRuntime (const lldb::ProcessSP &process_sp)
 
lldb::ProcessSP GetProcessSP ()
 
lldb::ModuleSP GetRuntimeModuleSP ()
 
void SetRuntimeModuleSP (lldb::ModuleSP module_sp)
 
lldb::user_id_t GetBreakpointID () const
 
void SetBreakpointID (lldb::user_id_t ID)
 
void SetActive (bool IsActive)
 

Detailed Description

Definition at line 19 of file InstrumentationRuntimeTSan.h.

Constructor & Destructor Documentation

◆ ~InstrumentationRuntimeTSan()

InstrumentationRuntimeTSan::~InstrumentationRuntimeTSan ( )
override

Definition at line 63 of file InstrumentationRuntimeTSan.cpp.

◆ InstrumentationRuntimeTSan()

lldb_private::InstrumentationRuntimeTSan::InstrumentationRuntimeTSan ( const lldb::ProcessSP &  process_sp)
inlineprivate

Definition at line 44 of file InstrumentationRuntimeTSan.h.

Member Function Documentation

◆ Activate()

void InstrumentationRuntimeTSan::Activate ( )
overrideprivatevirtual

◆ CheckIfRuntimeIsValid()

bool InstrumentationRuntimeTSan::CheckIfRuntimeIsValid ( const lldb::ModuleSP  module_sp)
overrideprivatevirtual

Check whether module_sp corresponds to a valid runtime library.

Implements lldb_private::InstrumentationRuntime.

Definition at line 885 of file InstrumentationRuntimeTSan.cpp.

References lldb::eSymbolTypeAny.

◆ CreateInstance()

lldb::InstrumentationRuntimeSP InstrumentationRuntimeTSan::CreateInstance ( const lldb::ProcessSP &  process_sp)
static

Definition at line 41 of file InstrumentationRuntimeTSan.cpp.

◆ Deactivate()

void InstrumentationRuntimeTSan::Deactivate ( )
private

Definition at line 931 of file InstrumentationRuntimeTSan.cpp.

References LLDB_INVALID_BREAK_ID.

◆ FormatDescription()

std::string InstrumentationRuntimeTSan::FormatDescription ( StructuredData::ObjectSP  report)
private

Definition at line 491 of file InstrumentationRuntimeTSan.cpp.

References string().

Referenced by NotifyBreakpointHit().

◆ GenerateSummary()

std::string InstrumentationRuntimeTSan::GenerateSummary ( StructuredData::ObjectSP  report)
private

Definition at line 613 of file InstrumentationRuntimeTSan.cpp.

References GetSymbolNameFromAddress(), pc, Sprintf(), and string().

Referenced by NotifyBreakpointHit().

◆ GetBacktracesFromExtendedStopInfo()

lldb::ThreadCollectionSP InstrumentationRuntimeTSan::GetBacktracesFromExtendedStopInfo ( StructuredData::ObjectSP  info)
overridevirtual

Reimplemented from lldb_private::InstrumentationRuntime.

Definition at line 1050 of file InstrumentationRuntimeTSan.cpp.

References AddThreadsForPath().

◆ GetFirstNonInternalFramePc()

addr_t InstrumentationRuntimeTSan::GetFirstNonInternalFramePc ( StructuredData::ObjectSP  trace,
bool  skip_one_frame = false 
)
private

◆ GetLocationDescription()

std::string InstrumentationRuntimeTSan::GetLocationDescription ( StructuredData::ObjectSP  report,
lldb::addr_t global_addr,
std::string global_name,
std::string filename,
uint32_t line 
)
private

◆ GetMainRacyAddress()

addr_t InstrumentationRuntimeTSan::GetMainRacyAddress ( StructuredData::ObjectSP  report)
private

◆ GetPatternForRuntimeLibrary()

const RegularExpression & InstrumentationRuntimeTSan::GetPatternForRuntimeLibrary ( )
overrideprivatevirtual

Return a regular expression which can be used to identify a valid version of the runtime library.

Implements lldb_private::InstrumentationRuntime.

Definition at line 880 of file InstrumentationRuntimeTSan.cpp.

◆ GetPluginName()

llvm::StringRef lldb_private::InstrumentationRuntimeTSan::GetPluginName ( )
inlineoverridevirtual

◆ GetPluginNameStatic()

lldb_private::ConstString InstrumentationRuntimeTSan::GetPluginNameStatic ( )
static

Definition at line 55 of file InstrumentationRuntimeTSan.cpp.

Referenced by GetPluginName().

◆ GetType()

virtual lldb::InstrumentationRuntimeType lldb_private::InstrumentationRuntimeTSan::GetType ( )
inlinevirtual

Definition at line 38 of file InstrumentationRuntimeTSan.h.

References GetTypeStatic().

◆ GetTypeStatic()

lldb::InstrumentationRuntimeType InstrumentationRuntimeTSan::GetTypeStatic ( )
static

Definition at line 59 of file InstrumentationRuntimeTSan.cpp.

References lldb::eInstrumentationRuntimeTypeThreadSanitizer.

Referenced by GetType().

◆ Initialize()

void InstrumentationRuntimeTSan::Initialize ( )
static

Definition at line 45 of file InstrumentationRuntimeTSan.cpp.

◆ NotifyBreakpointHit()

bool InstrumentationRuntimeTSan::NotifyBreakpointHit ( void *  baton,
StoppointCallbackContext context,
lldb::user_id_t  break_id,
lldb::user_id_t  break_loc_id 
)
staticprivate

◆ RetrieveReportData()

StructuredData::ObjectSP InstrumentationRuntimeTSan::RetrieveReportData ( ExecutionContextRef  exe_ctx_ref)
private

◆ Terminate()

void InstrumentationRuntimeTSan::Terminate ( )
static

Definition at line 51 of file InstrumentationRuntimeTSan.cpp.


The documentation for this class was generated from the following files: