Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'debug/org.eclipse.cdt.debug.dap/src/org/eclipse/cdt/debug/dap/DapDisassemblyBackendFactory.java')
-rw-r--r--debug/org.eclipse.cdt.debug.dap/src/org/eclipse/cdt/debug/dap/DapDisassemblyBackendFactory.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/debug/org.eclipse.cdt.debug.dap/src/org/eclipse/cdt/debug/dap/DapDisassemblyBackendFactory.java b/debug/org.eclipse.cdt.debug.dap/src/org/eclipse/cdt/debug/dap/DapDisassemblyBackendFactory.java
new file mode 100644
index 00000000000..18f268c30fc
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.dap/src/org/eclipse/cdt/debug/dap/DapDisassemblyBackendFactory.java
@@ -0,0 +1,29 @@
+package org.eclipse.cdt.debug.dap;
+
+import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyBackend;
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.lsp4e.debug.debugmodel.DSPStackFrame;
+
+public class DapDisassemblyBackendFactory implements IAdapterFactory {
+
+ private static final Class<?>[] ADAPTERS = { IDisassemblyBackend.class };
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <T> T getAdapter(Object adaptableObject, Class<T> adapterType) {
+ if (IDisassemblyBackend.class.equals(adapterType)) {
+ if (adaptableObject instanceof DSPStackFrame) {
+ DSPStackFrame dspDebugElement = (DSPStackFrame) adaptableObject;
+ if (dspDebugElement.getDebugTarget() instanceof DapDebugTarget) {
+ return (T) new DapDisassemblyBackend();
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public Class<?>[] getAdapterList() {
+ return ADAPTERS;
+ }
+}

Back to the top