LogView

Detailed Description

Classes

struct  LogTokenList
 
class  LogListFilterProxyModel
 
class  LogListModel
 
class  LogItemDelegate
 
class  LogViewComboBox
 
class  LogView
 
class  LogStatus
 

Enumerations

enum  LoggingScope { CurrentTabOnly , CurrentTabAndGlobal , GlobalOnly , AllTabs }
 

Class Documentation

◆ LogTokenList

struct LogTokenList
Class Members
vector< pair< int, int > > tokens

◆ LogListFilterProxyModel

class LogListFilterProxyModel

Public Slots

void updateSession (size_t sessionId)
 
void updateLogger (QString loggerName)
 
void updateFilter ()
 

Public Member Functions

 LogListFilterProxyModel (QObject *parent)
 
virtual bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const override
 
virtual QVariant data (const QModelIndex &idx, int role) const override
 
void setScope (LoggingScope scope)
 
LoggingScope getScope () const
 

Constructor & Destructor Documentation

◆ LogListFilterProxyModel()

LogListFilterProxyModel::LogListFilterProxyModel ( QObject *  parent)

Member Function Documentation

◆ filterAcceptsRow()

virtual bool LogListFilterProxyModel::filterAcceptsRow ( int  source_row,
const QModelIndex &  source_parent 
) const
overridevirtual

◆ data()

virtual QVariant LogListFilterProxyModel::data ( const QModelIndex &  idx,
int  role 
) const
overridevirtual

◆ setScope()

void LogListFilterProxyModel::setScope ( LoggingScope  scope)

◆ getScope()

LoggingScope LogListFilterProxyModel::getScope ( ) const
inline

◆ updateSession

void LogListFilterProxyModel::updateSession ( size_t  sessionId)
slot

◆ updateLogger

void LogListFilterProxyModel::updateLogger ( QString  loggerName)
slot

◆ updateFilter

void LogListFilterProxyModel::updateFilter ( )
slot

◆ LogListModel

class LogListModel

Public Slots

void notifySessionChanged (size_t sessionId)
 

Signals

void settingsUpdated ()
 

Public Member Functions

 LogListModel (QWidget *parent)
 
 ~LogListModel ()
 
void addPendingItems ()
 
void clear ()
 
virtual void LogMessage (size_t sessionId, BNLogLevel level, const std::string &msg, const std::string &loggerName="", size_t tid=0) override
 
virtual BNLogLevel GetLogLevel () override
 
QString getFormattedMessage (const LogListItem &item) const
 
void updateTokens ()
 
virtual QModelIndex index (int row, int col, const QModelIndex &parent) const override
 
virtual QModelIndex parent (const QModelIndex &i) const override
 
virtual bool hasChildren (const QModelIndex &parent) const override
 
virtual int rowCount (const QModelIndex &parent) const override
 
virtual int columnCount (const QModelIndex &parent) const override
 
virtual QVariant data (const QModelIndex &i, int role) const override
 
void setDisplaySessionId (bool value)
 
void setDisplayThreadId (bool value)
 
void setDisplayLoggerName (bool value)
 
void setDisplayLogLevel (bool value)
 
void setMinLogLevel (BNLogLevel level)
 
void setMaxLogLength (size_t length)
 
size_t getSessionId () const
 
bool getDisplaySessionId () const
 
bool getDisplayThreadId () const
 
bool getDisplayLoggerName () const
 
bool getDisplayLogLevel () const
 

Static Public Attributes

static constexpr int Level = Qt::UserRole + 1
 
static constexpr int Logger = Qt::UserRole + 2
 
static constexpr int ThreadId = Qt::UserRole + 3
 
static constexpr int Message = Qt::UserRole + 4
 
static constexpr int Session = Qt::UserRole + 5
 
static constexpr int FormattedMessage = Qt::UserRole + 6
 
static constexpr int Tokens = Qt::UserRole + 7
 

Constructor & Destructor Documentation

◆ LogListModel()

LogListModel::LogListModel ( QWidget *  parent)

◆ ~LogListModel()

LogListModel::~LogListModel ( )

Member Function Documentation

◆ addPendingItems()

void LogListModel::addPendingItems ( )

◆ clear()

void LogListModel::clear ( )

◆ LogMessage()

virtual void LogListModel::LogMessage ( size_t  sessionId,
BNLogLevel  level,
const std::string &  msg,
const std::string &  loggerName = "",
size_t  tid = 0 
)
overridevirtual

◆ GetLogLevel()

virtual BNLogLevel LogListModel::GetLogLevel ( )
overridevirtual

Reimplemented from BinaryNinja::LogListener.

◆ getFormattedMessage()

QString LogListModel::getFormattedMessage ( const LogListItem item) const

◆ updateTokens()

void LogListModel::updateTokens ( )

◆ index()

virtual QModelIndex LogListModel::index ( int  row,
int  col,
const QModelIndex &  parent 
) const
overridevirtual

◆ parent()

virtual QModelIndex LogListModel::parent ( const QModelIndex &  i) const
overridevirtual

◆ hasChildren()

virtual bool LogListModel::hasChildren ( const QModelIndex &  parent) const
overridevirtual

◆ rowCount()

virtual int LogListModel::rowCount ( const QModelIndex &  parent) const
overridevirtual

◆ columnCount()

virtual int LogListModel::columnCount ( const QModelIndex &  parent) const
overridevirtual

◆ data()

virtual QVariant LogListModel::data ( const QModelIndex &  i,
int  role 
) const
overridevirtual

◆ setDisplaySessionId()

void LogListModel::setDisplaySessionId ( bool  value)

◆ setDisplayThreadId()

void LogListModel::setDisplayThreadId ( bool  value)

◆ setDisplayLoggerName()

void LogListModel::setDisplayLoggerName ( bool  value)

◆ setDisplayLogLevel()

void LogListModel::setDisplayLogLevel ( bool  value)

◆ setMinLogLevel()

void LogListModel::setMinLogLevel ( BNLogLevel  level)

◆ setMaxLogLength()

void LogListModel::setMaxLogLength ( size_t  length)

◆ getSessionId()

size_t LogListModel::getSessionId ( ) const
inline

◆ getDisplaySessionId()

bool LogListModel::getDisplaySessionId ( ) const
inline

◆ getDisplayThreadId()

bool LogListModel::getDisplayThreadId ( ) const
inline

◆ getDisplayLoggerName()

bool LogListModel::getDisplayLoggerName ( ) const
inline

◆ getDisplayLogLevel()

bool LogListModel::getDisplayLogLevel ( ) const
inline

◆ settingsUpdated

void LogListModel::settingsUpdated ( )
signal

◆ notifySessionChanged

void LogListModel::notifySessionChanged ( size_t  sessionId)
slot

Member Data Documentation

◆ Level

constexpr int LogListModel::Level = Qt::UserRole + 1
staticconstexpr

◆ Logger

constexpr int LogListModel::Logger = Qt::UserRole + 2
staticconstexpr

◆ ThreadId

constexpr int LogListModel::ThreadId = Qt::UserRole + 3
staticconstexpr

◆ Message

constexpr int LogListModel::Message = Qt::UserRole + 4
staticconstexpr

◆ Session

constexpr int LogListModel::Session = Qt::UserRole + 5
staticconstexpr

◆ FormattedMessage

constexpr int LogListModel::FormattedMessage = Qt::UserRole + 6
staticconstexpr

◆ Tokens

constexpr int LogListModel::Tokens = Qt::UserRole + 7
staticconstexpr

◆ LogItemDelegate

class LogItemDelegate

Public Slots

void viewChanged (QWidget *frame)
 

Signals

void notifySessionChanged (size_t sessionId)
 

Public Member Functions

 LogItemDelegate (QWidget *parent)
 
void updateFonts ()
 
virtual QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &idx) const override
 
virtual void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &idx) const override
 
virtual void OnSegmentAdded (BinaryNinja::BinaryView *, BinaryNinja::Segment *) override
 
virtual void OnSegmentRemoved (BinaryNinja::BinaryView *, BinaryNinja::Segment *) override
 
virtual void OnSegmentUpdated (BinaryNinja::BinaryView *, BinaryNinja::Segment *) override
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated. More...
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree. More...
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree. More...
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another. More...
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component. More...
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component. More...
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component. More...
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component. More...
 

Protected Member Functions

bool editorEvent (QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
 

Additional Inherited Members

- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved ,
  FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated , DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated ,
  TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated , SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated ,
  StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined , TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved ,
  SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved , SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved
}
 
using NotificationTypes = uint64_t
 

Constructor & Destructor Documentation

◆ LogItemDelegate()

LogItemDelegate::LogItemDelegate ( QWidget *  parent)

Member Function Documentation

◆ updateFonts()

void LogItemDelegate::updateFonts ( )

◆ sizeHint()

virtual QSize LogItemDelegate::sizeHint ( const QStyleOptionViewItem &  option,
const QModelIndex &  idx 
) const
overridevirtual

◆ paint()

virtual void LogItemDelegate::paint ( QPainter *  painter,
const QStyleOptionViewItem &  option,
const QModelIndex &  idx 
) const
overridevirtual

◆ OnSegmentAdded()

virtual void LogItemDelegate::OnSegmentAdded ( BinaryNinja::BinaryView ,
BinaryNinja::Segment  
)
inlineoverridevirtual

◆ OnSegmentRemoved()

virtual void LogItemDelegate::OnSegmentRemoved ( BinaryNinja::BinaryView ,
BinaryNinja::Segment  
)
inlineoverridevirtual

◆ OnSegmentUpdated()

virtual void LogItemDelegate::OnSegmentUpdated ( BinaryNinja::BinaryView ,
BinaryNinja::Segment  
)
inlineoverridevirtual

◆ editorEvent()

bool LogItemDelegate::editorEvent ( QEvent *  event,
QAbstractItemModel *  model,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
)
overrideprotected

◆ notifySessionChanged

void LogItemDelegate::notifySessionChanged ( size_t  sessionId)
signal

◆ viewChanged

void LogItemDelegate::viewChanged ( QWidget *  frame)
slot

◆ LogViewComboBox

class LogViewComboBox

Public Slots

void signalItemSelected (size_t)
 

Signals

void itemSelected (QString text)
 

Public Member Functions

 LogViewComboBox (QWidget *parent)
 
void updateLoggers ()
 
void showPopup ()
 

Constructor & Destructor Documentation

◆ LogViewComboBox()

LogViewComboBox::LogViewComboBox ( QWidget *  parent)

Member Function Documentation

◆ updateLoggers()

void LogViewComboBox::updateLoggers ( )

◆ showPopup()

void LogViewComboBox::showPopup ( )

◆ signalItemSelected

void LogViewComboBox::signalItemSelected ( size_t  )
slot

◆ itemSelected

void LogViewComboBox::itemSelected ( QString  text)
signal

◆ LogView

class LogView

Public Slots

void clear ()
 

Signals

void notifyUiStatus ()
 
void viewChanged (QWidget *frame)
 

Public Member Functions

 LogView (LogStatus *logStatus)
 
virtual void copy ()
 
virtual bool canCopy ()
 
void notifyFontChanged () override
 
void notifyThemeChanged () override
 
void notifyViewChanged (ViewFrame *frame) override
 
void focus () override
 
LogListModelmodel ()
 
void updateFilter (const QString &filterText)
 
LoggingScope getScope () const
 
void setScope (LoggingScope scope)
 
- Public Member Functions inherited from GlobalAreaWidget
 GlobalAreaWidget (const QString &title)
 
const QString & title () const
 
virtual void notifyFontChanged ()
 
virtual void notifyOffsetChanged (uint64_t)
 
virtual void notifyThemeChanged ()
 
virtual void notifyViewChanged (ViewFrame *)
 
virtual void notifyViewLocationChanged (View *, const ViewLocation &)
 
virtual void focus ()
 

Static Public Member Functions

static void setLogLevel (BNLogLevel level)
 
static void setLogSize (size_t maxSize)
 
static bool IsHexString (const QString &str, std::pair< int, int > offsetLen)
 
static bool StartsWith0x (const QString &str, std::pair< int, int > offsetLen)
 

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *event) override
 

Additional Inherited Members

- Protected Attributes inherited from GlobalAreaWidget
QString m_title
 
UIActionHandler m_actionHandler
 
ContextMenuManagerm_contextMenuManager = nullptr
 
Menum_menu = nullptr
 

Constructor & Destructor Documentation

◆ LogView()

LogView::LogView ( LogStatus logStatus)

Member Function Documentation

◆ copy()

virtual void LogView::copy ( )
virtual

◆ canCopy()

virtual bool LogView::canCopy ( )
virtual

◆ setLogLevel()

static void LogView::setLogLevel ( BNLogLevel  level)
static

◆ setLogSize()

static void LogView::setLogSize ( size_t  maxSize)
static

◆ IsHexString()

static bool LogView::IsHexString ( const QString &  str,
std::pair< int, int >  offsetLen 
)
static

◆ StartsWith0x()

static bool LogView::StartsWith0x ( const QString &  str,
std::pair< int, int >  offsetLen 
)
static

◆ notifyFontChanged()

void LogView::notifyFontChanged ( )
overridevirtual

Reimplemented from GlobalAreaWidget.

◆ notifyThemeChanged()

void LogView::notifyThemeChanged ( )
overridevirtual

Reimplemented from GlobalAreaWidget.

◆ notifyViewChanged()

void LogView::notifyViewChanged ( ViewFrame frame)
overridevirtual

Reimplemented from GlobalAreaWidget.

◆ focus()

void LogView::focus ( )
overridevirtual

Reimplemented from GlobalAreaWidget.

◆ model()

LogListModel * LogView::model ( )
inline

◆ updateFilter()

void LogView::updateFilter ( const QString &  filterText)

◆ getScope()

LoggingScope LogView::getScope ( ) const
inline

◆ setScope()

void LogView::setScope ( LoggingScope  scope)
inline

◆ contextMenuEvent()

void LogView::contextMenuEvent ( QContextMenuEvent *  event)
overrideprotected

◆ notifyUiStatus

void LogView::notifyUiStatus ( )
signal

◆ viewChanged

void LogView::viewChanged ( QWidget *  frame)
signal

◆ clear

void LogView::clear ( )
slot

◆ LogStatus

class LogStatus

Public Slots

void notifySessionChanged (size_t sessionId)
 
void clicked (bool error)
 

Public Member Functions

 LogStatus (QWidget *parent)
 
void setLogView (LogView *view)
 
void incrementErrorCount (uint64_t session, int count)
 
void incrementWarningCount (uint64_t session, int count)
 
void checkForErrors ()
 
void focusTab (UIContext *context, QWidget *tab, size_t m_sessionId)
 
void clearIndicators ()
 
void updateTheme ()
 

Constructor & Destructor Documentation

◆ LogStatus()

LogStatus::LogStatus ( QWidget *  parent)

Member Function Documentation

◆ setLogView()

void LogStatus::setLogView ( LogView view)
inline

◆ incrementErrorCount()

void LogStatus::incrementErrorCount ( uint64_t  session,
int  count 
)

◆ incrementWarningCount()

void LogStatus::incrementWarningCount ( uint64_t  session,
int  count 
)

◆ checkForErrors()

void LogStatus::checkForErrors ( )

◆ focusTab()

void LogStatus::focusTab ( UIContext context,
QWidget *  tab,
size_t  m_sessionId 
)

◆ clearIndicators()

void LogStatus::clearIndicators ( )

◆ updateTheme()

void LogStatus::updateTheme ( )

◆ notifySessionChanged

void LogStatus::notifySessionChanged ( size_t  sessionId)
slot

◆ clicked

void LogStatus::clicked ( bool  error)
slot

Enumeration Type Documentation

◆ LoggingScope

Enumerator
CurrentTabOnly 
CurrentTabAndGlobal 
GlobalOnly 
AllTabs