Skip to content

Commit e5cd181

Browse files
lynnuxmrexodia
authored andcommitted
let goto file offset dialog has a init value of current selected address
1 parent dbb6e7e commit e5cd181

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/gui/Src/Gui/CPUDisassembly.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,17 @@ void CPUDisassembly::gotoFileOffsetSlot()
10031003
mGotoOffset->fileOffset = true;
10041004
mGotoOffset->modName = QString(modname);
10051005
mGotoOffset->setWindowTitle(tr("Goto File Offset in ") + QString(modname));
1006+
QString offsetOfSelected;
1007+
prepareDataRange(getSelectionStart(), getSelectionEnd(), [&](int, const Instruction_t & inst)
1008+
{
1009+
duint addr = rvaToVa(inst.rva);
1010+
duint offset = DbgFunctions()->VaToFileOffset(addr);
1011+
if(offset)
1012+
offsetOfSelected = ToHexString(offset);
1013+
return false;
1014+
});
1015+
if(!offsetOfSelected.isEmpty())
1016+
mGotoOffset->setInitialExpression(offsetOfSelected);
10061017
if(mGotoOffset->exec() != QDialog::Accepted)
10071018
return;
10081019
duint value = DbgValFromString(mGotoOffset->expressionText.toUtf8().constData());

src/gui/Src/Gui/CPUDump.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,10 @@ void CPUDump::gotoFileOffsetSlot()
585585
mGotoOffset->fileOffset = true;
586586
mGotoOffset->modName = QString(modname);
587587
mGotoOffset->setWindowTitle(tr("Goto File Offset in %1").arg(QString(modname)));
588+
duint addr = rvaToVa(getInitialSelection());
589+
duint offset = DbgFunctions()->VaToFileOffset(addr);
590+
if(offset)
591+
mGotoOffset->setInitialExpression(ToHexString(offset));
588592
if(mGotoOffset->exec() != QDialog::Accepted)
589593
return;
590594
duint value = DbgValFromString(mGotoOffset->expressionText.toUtf8().constData());

0 commit comments

Comments
 (0)