Skip to content

Commit

Permalink
Add menu on logger/tracker to launch memory visualizer.
Browse files Browse the repository at this point in the history
  • Loading branch information
epasveer committed Dec 17, 2023
1 parent 35055bd commit ee1e27e
Show file tree
Hide file tree
Showing 9 changed files with 377 additions and 168 deletions.
7 changes: 6 additions & 1 deletion src/SeerGdbWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,13 @@ SeerGdbWidget::SeerGdbWidget (QWidget* parent) : QWidget(parent) {
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::refreshVariableTrackerNames, this, &SeerGdbWidget::handleGdbDataListValues);
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::addVariableExpression, this, &SeerGdbWidget::handleGdbDataAddExpression);
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::deleteVariableExpressions, this, &SeerGdbWidget::handleGdbDataDeleteExpressions);
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::addMemoryVisualize, this, &SeerGdbWidget::handleGdbMemoryAddExpression);
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::addArrayVisualize, this, &SeerGdbWidget::handleGdbArrayAddExpression);
QObject::connect(variableManagerWidget->variableTrackerBrowserWidget(), &SeerVariableTrackerBrowserWidget::addStructVisualize, this, &SeerGdbWidget::handleGdbVarAddExpression);
QObject::connect(variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::evaluateVariableExpression, this, &SeerGdbWidget::handleGdbDataEvaluateExpression);

QObject::connect(variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::addMemoryVisualize, this, &SeerGdbWidget::handleGdbMemoryAddExpression);
QObject::connect(variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::addArrayVisualize, this, &SeerGdbWidget::handleGdbArrayAddExpression);
QObject::connect(variableManagerWidget->variableLoggerBrowserWidget(), &SeerVariableLoggerBrowserWidget::addStructVisualize, this, &SeerGdbWidget::handleGdbVarAddExpression);
QObject::connect(variableManagerWidget->registerValuesBrowserWidget(), &SeerRegisterValuesBrowserWidget::refreshRegisterNames, this, &SeerGdbWidget::handleGdbRegisterListNames);
QObject::connect(variableManagerWidget->registerValuesBrowserWidget(), &SeerRegisterValuesBrowserWidget::refreshRegisterValues, this, &SeerGdbWidget::handleGdbRegisterListValues);
QObject::connect(variableManagerWidget->registerValuesBrowserWidget(), &SeerRegisterValuesBrowserWidget::setRegisterValue, this, &SeerGdbWidget::handleGdbRegisterSetValue);
Expand Down
4 changes: 0 additions & 4 deletions src/SeerRegisterValuesBrowserWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,6 @@ void SeerRegisterValuesBrowserWidget::handleText (const QString& text) {

QString frame_text = Seer::parseFirst(newtext, "register-names=", '[', ']', false);

//qDebug() << frame_text;

QStringList name_list = Seer::parse(frame_text, "", '"', '"', false);

int i = 0;
Expand Down Expand Up @@ -173,8 +171,6 @@ void SeerRegisterValuesBrowserWidget::handleText (const QString& text) {
// {number=\"3\",value=\"0x7fffffffd548\"},{number=\"4\",value=\"0x7fffffffd538\"},{number=\"5\",value=\"0x1\"},...
// {number=\"205\",value=\"0x0\"},{number=\"206\",value=\"0x0\"}]"

//qDebug() << text;

QString newtext = Seer::filterEscapes(text); // Filter escaped characters.

QString frame_text = Seer::parseFirst(newtext, "register-values=", '[', ']', false);
Expand Down
43 changes: 0 additions & 43 deletions src/SeerStackArgumentsBrowserWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ void SeerStackArgumentsBrowserWidget::handleText (const QString& text) {

QStringList frame_list = Seer::parse(text, "frame=", '{', '}', false);

//qDebug() << frame_list.count() << frame_list;

// Mark each entry initially as "unused".
// Later, some will be marked as "reused" or "new". Then the "unused" ones will
// be deleted.
Expand All @@ -75,14 +73,9 @@ void SeerStackArgumentsBrowserWidget::handleText (const QString& text) {

for ( const auto& frame_text : frame_list ) {

//qDebug() << frame_text;

QString level_text = Seer::parseFirst(frame_text, "level=", '"', '"', false);
QString args_text = Seer::parseFirst(frame_text, "args=", '[', ']', false);

//qDebug() << level_text;
//qDebug() << args_text;

QStringList namevalue_list = Seer::parse(args_text, "", '{', '}', false);

QList<QTreeWidgetItem*> matches = argumentsTreeWidget->findItems(level_text, Qt::MatchExactly, 0);
Expand Down Expand Up @@ -264,8 +257,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to log.
if (action == addVariableLoggerExpressionAction) {

//qDebug() << "addVariableLoggerExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableLoggerExpression(item->text(1));
Expand All @@ -277,8 +268,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to log.
if (action == addVariableLoggerAsteriskExpressionAction) {

//qDebug() << "addVariableLoggerAsteriskExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableLoggerExpression(QString("*") + item->text(1));
Expand All @@ -290,8 +279,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to log.
if (action == addVariableLoggerAmpersandExpressionAction) {

//qDebug() << "addVariableLoggerAmpersandExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableLoggerExpression(QString("&") + item->text(1));
Expand All @@ -303,8 +290,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to log.
if (action == addVariableLoggerAsteriskAmpersandExpressionAction) {

//qDebug() << "addVariableLoggerAsteriskAmpersandExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableLoggerExpression(QString("*&") + item->text(1));
Expand All @@ -316,8 +301,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to track.
if (action == addVariableTrackerExpressionAction) {

//qDebug() << "addVariableTrackerExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableTrackerExpression(item->text(1));
Expand All @@ -330,8 +313,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to track.
if (action == addVariableTrackerAsteriskExpressionAction) {

//qDebug() << "addVariableTrackerAsteriskExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableTrackerExpression(QString("*") + item->text(1));
Expand All @@ -344,8 +325,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to track.
if (action == addVariableTrackerAmpersandExpressionAction) {

//qDebug() << "addVariableTrackerAmpersandExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableTrackerExpression(QString("&") + item->text(1));
Expand All @@ -358,8 +337,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding a variable to track.
if (action == addVariableTrackerAsteriskAmpersandExpressionAction) {

//qDebug() << "addVariableTrackerAsteriskAmpersandExpression" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addVariableTrackerExpression(QString("*&") + item->text(1));
Expand All @@ -372,8 +349,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding memory to visualize.
if (action == addMemoryVisualizerAction) {

//qDebug() << "addMemoryVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addMemoryVisualize(item->text(1));
Expand All @@ -385,8 +360,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding memory to visualize.
if (action == addMemoryAsteriskVisualizerAction) {

//qDebug() << "addMemoryAsteriskVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addMemoryVisualize(QString("*") + item->text(1));
Expand All @@ -398,8 +371,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding memory to visualize.
if (action == addMemoryAmpersandVisualizerAction) {

//qDebug() << "addMemoryAmpersandVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addMemoryVisualize(QString("&") + item->text(1));
Expand All @@ -411,8 +382,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding array to visualize.
if (action == addArrayVisualizerAction) {

//qDebug() << "addArrayVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addArrayVisualize(item->text(1));
Expand All @@ -424,8 +393,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding array to visualize.
if (action == addArrayAsteriskVisualizerAction) {

//qDebug() << "addArrayAsteriskVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addArrayVisualize(QString("*") + item->text(1));
Expand All @@ -437,8 +404,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding array to visualize.
if (action == addArrayAmpersandVisualizerAction) {

//qDebug() << "addArrayAmpersandVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addArrayVisualize(QString("&") + item->text(1));
Expand All @@ -450,8 +415,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding struct to visualize.
if (action == addStructVisualizerAction) {

//qDebug() << "addStructVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addStructVisualize(item->text(1));
Expand All @@ -463,8 +426,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding array to visualize.
if (action == addStructAsteriskVisualizerAction) {

//qDebug() << "addStructAsteriskVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addStructVisualize(QString("*") + item->text(1));
Expand All @@ -476,8 +437,6 @@ void SeerStackArgumentsBrowserWidget::handleContextMenu (const QPoint& pos) {
// Handle adding array to visualize.
if (action == addStructAmpersandVisualizerAction) {

//qDebug() << "addStructAmpersandVisualizer" << item->text(1);

// Emit the signals.
if (item->text(1) != "") {
emit addStructVisualize(QString("&") + item->text(1));
Expand Down Expand Up @@ -511,8 +470,6 @@ void SeerStackArgumentsBrowserWidget::handleItemEntered (QTreeWidgetItem* item,

Q_UNUSED(column);

//qDebug() << item->text(0) << column;

if (item->text(0) != "") {
for (int i=0; i<argumentsTreeWidget->columnCount(); i++) { // The "level" item does not have a tooltip.
item->setToolTip(i, "");
Expand Down
8 changes: 0 additions & 8 deletions src/SeerStackFramesBrowserWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@ void SeerStackFramesBrowserWidget::handleText (const QString& text) {
// frame={level=\"1\",addr=\"0x0000000000400cc3\",func=\"main\",file=\"helloworld.cpp\",fullname=\"/home/erniep/Development/Peak/src/Seer/helloworld/helloworld.cpp\",line=\"14\",arch=\"i386:x86-64\"}
// ]

//qDebug() << text;

// If we are simply moving up and down the stack (via frame-select) then the text won't change.
// If it is different, reconstruct the tree. Select the first frame.
if (text != _previousStackFrameText) {
Expand Down Expand Up @@ -84,8 +82,6 @@ void SeerStackFramesBrowserWidget::handleText (const QString& text) {
QString line_text = Seer::parseFirst(frame_text, "line=", '"', '"', false);
QString arch_text = Seer::parseFirst(frame_text, "arch=", '"', '"', false);

// qDebug() << file_text << fullname_text << line_text;

// Create the item.
QTreeWidgetItem* item = new QTreeWidgetItem;
item->setText(0, level_text);
Expand Down Expand Up @@ -174,8 +170,6 @@ void SeerStackFramesBrowserWidget::handleItemClicked (QTreeWidgetItem* item, int

int lineno = item->text(3).toInt();

//qDebug() << "Emit selectedFile and selectedFrame";

emit selectedFile(item->text(2), item->text(4), lineno);
emit selectedFrame(item->text(0).toInt());
emit selectedAddress(item->text(5));
Expand All @@ -185,8 +179,6 @@ void SeerStackFramesBrowserWidget::handleItemEntered (QTreeWidgetItem* item, int

Q_UNUSED(column);

//qDebug() << item->text(0) << column;

item->setToolTip(0, item->text(0) + " : " + item->text(1) + " : " + item->text(2) + " : " + item->text(3));

for (int i=1; i<stackTreeWidget->columnCount(); i++) { // Copy tooltip to other columns.
Expand Down
Loading

0 comments on commit ee1e27e

Please sign in to comment.