Skip to content

Commit a30fecb

Browse files
committed
GUI: added an option to copy the file path of a module
1 parent 3199025 commit a30fecb

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

x64_dbg_gui/Project/Src/Gui/SymbolView.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ void SymbolView::setupContextMenu()
120120
mDownloadAllSymbolsAction = new QAction("Download Symbols for &All Modules", this);
121121
connect(mDownloadAllSymbolsAction, SIGNAL(triggered()), this, SLOT(moduleDownloadAllSymbols()));
122122

123+
mCopyPathAction = new QAction("Copy File &Path", this);
124+
connect(mCopyPathAction, SIGNAL(triggered()), this, SLOT(moduleCopyPath()));
125+
123126
//Shortcuts
124127
refreshShortcutsSlot();
125128
connect(Config(), SIGNAL(shortcutsUpdated()), this, SLOT(refreshShortcutsSlot()));
@@ -237,6 +240,10 @@ void SymbolView::moduleContextMenu(const QPoint & pos)
237240
wMenu->addAction(mFollowModuleEntryAction);
238241
wMenu->addAction(mDownloadSymbolsAction);
239242
wMenu->addAction(mDownloadAllSymbolsAction);
243+
int_t modbase = DbgValFromString(mModuleList->getCellContent(mModuleList->getInitialSelection(), 0).toUtf8().constData());
244+
char szModPath[MAX_PATH] = "";
245+
if(DbgFunctions()->ModPathFromAddr(modbase, szModPath, _countof(szModPath)))
246+
wMenu->addAction(mCopyPathAction);
240247
QMenu wCopyMenu("&Copy", this);
241248
mModuleList->setupCopyMenu(&wCopyMenu);
242249
if(wCopyMenu.actions().length())
@@ -259,6 +266,14 @@ void SymbolView::moduleEntryFollow()
259266
emit showCpu();
260267
}
261268

269+
void SymbolView::moduleCopyPath()
270+
{
271+
int_t modbase = DbgValFromString(mModuleList->getCellContent(mModuleList->getInitialSelection(), 0).toUtf8().constData());
272+
char szModPath[MAX_PATH] = "";
273+
if(DbgFunctions()->ModPathFromAddr(modbase, szModPath, _countof(szModPath)))
274+
Bridge::CopyToClipboard(szModPath);
275+
}
276+
262277
void SymbolView::moduleDownloadSymbols()
263278
{
264279
DbgCmdExec(QString("symdownload " + mModuleList->getCellContent(mModuleList->getInitialSelection(), 1)).toUtf8().constData());

x64_dbg_gui/Project/Src/Gui/SymbolView.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ private slots:
3333
void moduleEntryFollow();
3434
void moduleDownloadSymbols();
3535
void moduleDownloadAllSymbols();
36+
void moduleCopyPath();
3637
void toggleBreakpoint();
3738
void toggleBookmark();
3839
void refreshShortcutsSlot();
@@ -56,6 +57,7 @@ private slots:
5657
QAction* mFollowModuleEntryAction;
5758
QAction* mDownloadSymbolsAction;
5859
QAction* mDownloadAllSymbolsAction;
60+
QAction* mCopyPathAction;
5961

6062
static void cbSymbolEnum(SYMBOLINFO* symbol, void* user);
6163
};

0 commit comments

Comments
 (0)