libclues
Linux C++ Tracing Library
Loading...
Searching...
No Matches
clues::item::PointerValue Class Reference

A value that consists of a pointer to some data area. More...

#include <items.hxx>

+ Inheritance diagram for clues::item::PointerValue:

Public Member Functions

 PointerValue (const ItemType type, const std::string_view short_name, const std::string_view long_name)
 
- Public Member Functions inherited from clues::SystemCallItem
 SystemCallItem (const ItemType type, const std::string_view short_name={}, const std::string_view long_name={})
 Constructs a new SystemCallItem.
 
auto type () const
 
bool isIn () const
 
bool isOut () const
 
bool isInOut () const
 
bool isReturnValue () const
 
void fill (const Tracee &proc, const Word word)
 Fills the item from the given register data.
 
bool needsUpdate () const
 Returns whether the item needs to be updated after the system call is finished.
 
std::string_view shortName () const
 Returns the friendly short name for this item.
 
std::string_view longName () const
 Returns the friendly long name for this item, if available, else the short name.
 
auto hasLongName () const
 
virtual std::string str () const
 Returns a human readable string representation of the item.
 
bool isZero () const
 Returns whether the parameter is set to 0 / NULL.
 
Word value () const
 Returns the currently stored raw value of the item.
 
template<typename OTHER>
OTHER valueAs () const
 Helper to cast the strongly typed Word m_val to other strong enum types.
 
ForeignPtr asPtr () const
 
Flags flags () const
 
bool deferFill () const
 

Additional Inherited Members

- Public Types inherited from clues::SystemCallItem
enum class  Flag { DEFER_FILL = 1 << 0 }
 
using Flags = cosmos::BitMask<Flag>
 
- Protected Member Functions inherited from clues::SystemCallItem
virtual void processValue (const Tracee &)
 Processes the value stored in m_val acc. to the actual item type.
 
virtual void updateData (const Tracee &t)
 Called upon exit of the system call to update possible out parameters.
 
void setSystemCall (const SystemCall &sc)
 Sets the system call context this item is a part of.
 
- Protected Attributes inherited from clues::SystemCallItem
const SystemCallm_call = nullptr
 The system call context this item part of.
 
const ItemType m_type
 The type of item.
 
std::string_view m_short_name
 A human readable short name for the item, should be one word only.
 
std::string_view m_long_name
 A human readable longer name for the item.
 
Word m_val
 The raw register value for the item.
 
Flags m_flags
 Flags influencing the processing of the item.
 

Detailed Description

A value that consists of a pointer to some data area.

Unlike ValueParameter, PointerValue is a pointer to some userspace data structure. Thus the processValue() and updateData() functions need to perform more complex operations on the tracee to gather the data as appropriate.

Definition at line 76 of file items.hxx.

Constructor & Destructor Documentation

◆ PointerValue()

clues::item::PointerValue::PointerValue ( const ItemType type,
const std::string_view short_name,
const std::string_view long_name )
inlineexplicit

Definition at line 80 of file items.hxx.

83 :
84 SystemCallItem{type, short_name, long_name} {
85 }
SystemCallItem(const ItemType type, const std::string_view short_name={}, const std::string_view long_name={})
Constructs a new SystemCallItem.

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