diff --git a/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java b/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java index 595b1e6c5..30dbcc591 100644 --- a/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java +++ b/jadx-gui/src/main/java/jadx/gui/device/debugger/DebugController.java @@ -905,8 +905,8 @@ public final class DebugController implements SmaliDebugger.SuspendListener, IDe private void resetAllInfo() { isSuspended = true; toBeUpdatedTreeNode = null; - debuggerPanel.resetAllDebuggingInfo(); cur.reset(); + UiUtils.uiRun(debuggerPanel::resetAllDebuggingInfo); } private List getRuntimeDebugInfo(FrameNode frame) { @@ -1367,7 +1367,7 @@ public final class DebugController implements SmaliDebugger.SuspendListener, IDe } } - private static class FieldTreeNode extends RuntimeValueTreeNode { + static class FieldTreeNode extends RuntimeValueTreeNode { private static final long serialVersionUID = -1111111202103122235L; private final RuntimeField field; diff --git a/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java b/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java index bab34d23d..a252252ce 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/panel/JDebuggerPanel.java @@ -448,6 +448,7 @@ public class JDebuggerPanel extends JPanel { } public void resetAllDebuggingInfo() { + UiUtils.uiThreadGuard(); clearFrameAndThreadList(); resetRegTreeNodes(); resetThisTreeNodes(); @@ -483,13 +484,15 @@ public class JDebuggerPanel extends JPanel { } public void refreshStackFrameList(List elements) { - if (elements.size() > 0) { - DefaultListModel model = - (DefaultListModel) stackFrameList.getModel(); - elements.forEach(model::addElement); - stackFrameList.setFont(mainWindow.getSettings().getCodeFont()); - } - SwingUtilities.invokeLater(stackFrameList::repaint); + UiUtils.uiRun(() -> { + if (!elements.isEmpty()) { + DefaultListModel model = + (DefaultListModel) stackFrameList.getModel(); + model.addAll(elements); + stackFrameList.setFont(mainWindow.getSettings().getCodeFont()); + } + stackFrameList.repaint(); + }); } public void refreshRegisterTree() { @@ -578,7 +581,7 @@ public class JDebuggerPanel extends JPanel { @Override public String toString() { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(64); sb.append(getName()); String val = getValue(); if (val != null) {