eteran / edb-debugger

edb is a cross-platform AArch32/x86/x86-64 debugger.
GNU General Public License v2.0
2.66k stars 321 forks source link

edb can not show save file dialog in ubuntu 21.10 #809

Open TheZ4ro opened 2 years ago

TheZ4ro commented 2 years ago

when use edb in ubuntu 21.10 from dump windows, choose save to file, the dialog failed to display.

maybe this is a qt5 wayland bug?

10110111 commented 2 years ago
TheZ4ro commented 2 years ago

problem fixed, patch file:

Date: Sat, 23 Oct 2021 14:14:02 +0800 Subject: [PATCH] fix save file dialog


 src/Debugger.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/Debugger.cpp b/src/Debugger.cpp
index 68972b5b..05e96249 100644
--- a/src/Debugger.cpp
+++ b/src/Debugger.cpp
@@ -1905,7 +1905,10 @@ void Debugger::mnuDumpSaveToFile() {
    const QString filename = QFileDialog::getSaveFileName(
        this,
        tr("Save File"),
-       lastOpenDirectory_);
+       lastOpenDirectory_,
+       0,
+       NULL,
+       QFileDialog::DontUseNativeDialog);

    if (!filename.isEmpty()) {
        QFile file(filename);
-- 
2.32.0
10110111 commented 2 years ago

This doesn't look like a fix, more like a workaround. Native dialog is supposed to work fine too.

TheZ4ro commented 2 years ago

No, if you install ubuntu 21.10 default desktop, and edb dump window -> save to file will always hung even stop the whole destop. but the ubuntu 18.x works well.

10110111 commented 2 years ago

I get a transparent window, rather than hung desktop, but yeah, Qt integration with Ubuntu desktop seems broken. A less intrusive "fix" may be to run EDB with XDG_CURRENT_DESKTOP=kde environment variable:

XDG_CURRENT_DESKTOP=kde edb

This will work even if you don't have any part of KDE installed, the effect will just be to avoid desktop integration.

EGQM commented 2 years ago

@TheZ4ro,my computer system is ubuntu21.10 (gnome, 5.15.7-051507-generic),and it works well.

yerodin commented 1 year ago

Its not working for me on latest kali rolling, it's transparent even with XDG_CURRENT_DESKTOP=kde env set.