Skip to content

Commit f9c5be9

Browse files
committed
Add log message dialog for showing stack traces
1 parent 926efa6 commit f9c5be9

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

ui/logmessagedialog.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#pragma once
2+
3+
#include <QtWidgets/QDialog>
4+
#include "binaryninjaapi.h"
5+
#include "uitypes.h"
6+
#include "clickablelabel.h"
7+
8+
/*!
9+
10+
\defgroup logmessagedialog LogMessageDialog
11+
\ingroup uiapi
12+
*/
13+
14+
/*!
15+
\ingroup logmessagedialog
16+
*/
17+
class BINARYNINJAUIAPI LogMessageDialog : public QDialog
18+
{
19+
Q_OBJECT
20+
21+
QString m_stackTrace;
22+
ClickableLabel* m_showStackTraceLabel = nullptr;
23+
QVBoxLayout* m_stackTraceLayout = nullptr;
24+
bool m_stackTraceVisible = false;
25+
26+
static constexpr int MAX_WIDTH = 720;
27+
static constexpr int STACK_TRACE_HEIGHT = 300;
28+
29+
void init(BNLogLevel level, const QString& stackTrace, const QString& message);
30+
31+
public:
32+
LogMessageDialog(QWidget* parent, BNLogLevel level, const std::optional<std::string>& stackTrace,
33+
const std::string& message);
34+
LogMessageDialog(QWidget* parent, BNLogLevel level, const QString& stackTrace, const QString& message);
35+
36+
public Q_SLOTS:
37+
void requestStackTrace();
38+
};

ui/logview.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ struct BINARYNINJAUIAPI LogListItem
4949
size_t sessionId;
5050
BNLogLevel level;
5151
QString text;
52+
QString stackTrace;
5253
LogTokenList tokens;
5354
bool selected;
5455
QString logger;
@@ -122,6 +123,7 @@ class BINARYNINJAUIAPI LogListModel : public QAbstractItemModel, BinaryNinja::Lo
122123
static constexpr int Session = Qt::UserRole + 5;
123124
static constexpr int FormattedMessage = Qt::UserRole + 6;
124125
static constexpr int Tokens = Qt::UserRole + 7;
126+
static constexpr int StackTrace = Qt::UserRole + 8;
125127

126128
LogListModel(QWidget* parent);
127129
~LogListModel();

0 commit comments

Comments
 (0)