From 418240cdb762049b37e35b653a472784cf920418 Mon Sep 17 00:00:00 2001 From: Jean-Paul Mari Date: Sat, 17 Apr 2021 05:29:06 -0400 Subject: [PATCH] Added a #line in the call stack browser window --- docs/vj_HistoryNotes.txt | 1 + src/debugger/callstackbrowser.cpp | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/vj_HistoryNotes.txt b/docs/vj_HistoryNotes.txt index d6d7654..340e5da 100644 --- a/docs/vj_HistoryNotes.txt +++ b/docs/vj_HistoryNotes.txt @@ -36,6 +36,7 @@ Release 5 (TBA) 23) Handle number of M68K cycles used when tracing in debugger mode -- The cycles are displayed in the emulator status window 24) Improve the DWARF source line number reporting +25) Added a #line in the call stack browser window Release 4a (15th August 2019) ----------------------------- diff --git a/src/debugger/callstackbrowser.cpp b/src/debugger/callstackbrowser.cpp index 40d8e13..826b833 100644 --- a/src/debugger/callstackbrowser.cpp +++ b/src/debugger/callstackbrowser.cpp @@ -49,11 +49,12 @@ layout(new QVBoxLayout) layout->addWidget(text); #else // Set the new layout with proper identation and readibility - model->setColumnCount(4); + model->setColumnCount(5); model->setHeaderData(0, Qt::Horizontal, QObject::tr("Function")); - model->setHeaderData(1, Qt::Horizontal, QObject::tr("Line")); - model->setHeaderData(2, Qt::Horizontal, QObject::tr("Return address")); - model->setHeaderData(3, Qt::Horizontal, QObject::tr("Filename")); + model->setHeaderData(1, Qt::Horizontal, QObject::tr("#Line")); + model->setHeaderData(2, Qt::Horizontal, QObject::tr("Line")); + model->setHeaderData(3, Qt::Horizontal, QObject::tr("Return address")); + model->setHeaderData(4, Qt::Horizontal, QObject::tr("Filename")); // Information table TableView->setModel(model); TableView->setEditTriggers(QAbstractItemView::NoEditTriggers); @@ -118,16 +119,19 @@ void CallStackBrowserWindow::RefreshContents(void) model->insertRow(NbRaw); // display the function name model->setItem(NbRaw, 0, new QStandardItem(QString("%1").arg((Name = DBGManager_GetFunctionName(ret)) ? Name : "(N/A)"))); + // display the line number + sprintf(msg, "%zi", DBGManager_GetNumLineFromAdr(ret, DBG_NO_TAG)); + model->setItem(NbRaw, 1, new QStandardItem(QString("%1").arg((msg[0] != '0') ? msg : "(N/A)"))); // display the called line FunctionName = QString(Name = DBGManager_GetLineSrcFromAdr(ret, DBG_NO_TAG)); //FunctionName.replace(" ", " "); FunctionName = FunctionName.trimmed(); - model->setItem(NbRaw, 1, new QStandardItem(QString("%1").arg(Name ? FunctionName : "(N/A)"))); + model->setItem(NbRaw, 2, new QStandardItem(QString("%1").arg(Name ? FunctionName : "(N/A)"))); // display the return address sprintf(msg, "0x%06X", ret); - model->setItem(NbRaw, 2, new QStandardItem(QString("%1").arg(msg))); + model->setItem(NbRaw, 3, new QStandardItem(QString("%1").arg(msg))); // display the source filename from called source line - model->setItem(NbRaw++, 3, new QStandardItem(QString("%1").arg(((Name = DBGManager_GetFullSourceFilenameFromAdr(ret, &FilenameStatus)) && !FilenameStatus) ? Name : "(N/A)"))); + model->setItem(NbRaw++, 4, new QStandardItem(QString("%1").arg(((Name = DBGManager_GetFullSourceFilenameFromAdr(ret, &FilenameStatus)) && !FilenameStatus) ? Name : "(N/A)"))); #endif } else -- 2.20.1