From a9711fcaf164d25669714161e3cbd2706831c3b2 Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Mon, 14 Mar 2022 17:52:13 +0000 Subject: [PATCH 1/3] GP-1824: better bpt initialization --- .../model/impl/DbgModelTargetModuleImpl.java | 13 +++++++++--- .../model/impl/DbgModelTargetSymbolImpl.java | 20 ++++++++++++++----- .../gdb/model/impl/GdbModelTargetSymbol.java | 7 ++++--- .../model/impl/LldbModelTargetSymbolImpl.java | 11 +++++----- .../gui/objects/DebuggerObjectsProvider.java | 16 +++++++++++++++ .../components/DebuggerBreakpointDialog.java | 6 +++++- .../objects/components/DummyTargetObject.java | 12 +++++++---- .../dbg/target/TargetBreakpointSpec.java | 1 + 8 files changed, 64 insertions(+), 22 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetModuleImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetModuleImpl.java index 1e5781375f..48366f11b5 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetModuleImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetModuleImpl.java @@ -24,9 +24,16 @@ import ghidra.dbg.target.schema.*; import ghidra.dbg.util.PathUtils; import ghidra.program.model.address.*; -@TargetObjectSchemaInfo(name = "Module", elements = { - @TargetElementType(type = Void.class) }, attributes = { - @TargetAttributeType(name = "Symbols", type = DbgModelTargetSymbolContainerImpl.class, required = true, fixed = true), +@TargetObjectSchemaInfo( + name = "Module", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = "Symbols", + type = DbgModelTargetSymbolContainerImpl.class, + required = true, + fixed = true), @TargetAttributeType(name = "BaseAddress", type = Address.class), @TargetAttributeType(name = "ImageName", type = String.class), @TargetAttributeType(name = "TimeStamp", type = Integer.class), diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java index 6d00283449..190bc05a34 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java @@ -20,17 +20,22 @@ import java.util.Map; import agent.dbgeng.manager.impl.DbgMinimalSymbol; import agent.dbgeng.model.iface2.DbgModelTargetSymbol; -import ghidra.dbg.target.TargetObject; -import ghidra.dbg.target.TargetSymbol; +import ghidra.dbg.target.*; import ghidra.dbg.target.schema.*; import ghidra.dbg.util.PathUtils; import ghidra.program.model.address.Address; -@TargetObjectSchemaInfo(name = "Symbol", elements = { - @TargetElementType(type = Void.class) }, attributes = { - @TargetAttributeType(name = TargetSymbol.NAMESPACE_ATTRIBUTE_NAME, type = DbgModelTargetSymbolContainerImpl.class), +@TargetObjectSchemaInfo( + name = "Symbol", + elements = { + @TargetElementType(type = Void.class) }, + attributes = { + @TargetAttributeType( + name = TargetSymbol.NAMESPACE_ATTRIBUTE_NAME, + type = DbgModelTargetSymbolContainerImpl.class), @TargetAttributeType(name = TargetObject.VALUE_ATTRIBUTE_NAME, type = Address.class), @TargetAttributeType(name = TargetSymbol.SIZE_ATTRIBUTE_NAME, type = long.class), + @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(name = "Name", type = String.class), @TargetAttributeType(name = "Size", type = long.class), @TargetAttributeType(name = "TypeId", type = int.class), @@ -58,11 +63,16 @@ public class DbgModelTargetSymbolImpl extends DbgModelTargetObjectImpl this.value = symbols.getModel().getAddressSpace("ram").getAddress(symbol.getAddress()); this.size = symbol.getSize(); + TargetObject module = symbols.getParent(); + String moduleName = + (String) module.getCachedAttribute(TargetObject.SHORT_DISPLAY_ATTRIBUTE_NAME); changeAttributes(List.of(), List.of(), Map.of( // // TODO: DATA_TYPE NAMESPACE_ATTRIBUTE_NAME, symbols, // VALUE_ATTRIBUTE_NAME, value, // SIZE_ATTRIBUTE_NAME, size, // + TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, // + moduleName + "!" + symbol.getName(), // "Name", symbol.getName(), // "Size", size, // "TypeId", symbol.getTypeId(), // diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java index 99be18e1d6..741ff12342 100644 --- a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java +++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java @@ -20,8 +20,7 @@ import java.util.Map; import agent.gdb.manager.impl.GdbMinimalSymbol; import ghidra.dbg.agent.DefaultTargetObject; -import ghidra.dbg.target.TargetObject; -import ghidra.dbg.target.TargetSymbol; +import ghidra.dbg.target.*; import ghidra.dbg.target.schema.*; import ghidra.dbg.util.PathUtils; import ghidra.program.model.address.Address; @@ -31,6 +30,7 @@ import ghidra.program.model.address.Address; elements = { @TargetElementType(type = Void.class) }, attributes = { + @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(type = Void.class) }) public class GdbModelTargetSymbol extends DefaultTargetObject implements TargetSymbol { @@ -58,7 +58,8 @@ public class GdbModelTargetSymbol extends // TODO: DATA_TYPE VALUE_ATTRIBUTE_NAME, value, SIZE_ATTRIBUTE_NAME, size, - DISPLAY_ATTRIBUTE_NAME, symbol.getName()), + DISPLAY_ATTRIBUTE_NAME, symbol.getName(), + TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, symbol.getName()), "Initialized"); } diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java index 5ba29d29f2..5647ac674f 100644 --- a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java @@ -21,11 +21,8 @@ import java.util.Map; import SWIG.*; import agent.lldb.model.iface2.LldbModelTargetSession; import agent.lldb.model.iface2.LldbModelTargetSymbol; -import ghidra.dbg.target.TargetObject; -import ghidra.dbg.target.TargetSymbol; -import ghidra.dbg.target.schema.TargetAttributeType; -import ghidra.dbg.target.schema.TargetElementType; -import ghidra.dbg.target.schema.TargetObjectSchemaInfo; +import ghidra.dbg.target.*; +import ghidra.dbg.target.schema.*; import ghidra.dbg.util.PathUtils; import ghidra.program.model.address.Address; @@ -39,6 +36,7 @@ import ghidra.program.model.address.Address; type = LldbModelTargetSymbolContainerImpl.class), @TargetAttributeType(name = TargetObject.VALUE_ATTRIBUTE_NAME, type = Address.class), @TargetAttributeType(name = TargetSymbol.SIZE_ATTRIBUTE_NAME, type = long.class), + @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(name = "Name", type = String.class), @TargetAttributeType(name = "Size", type = long.class), @TargetAttributeType(name = "TypeId", type = int.class), @@ -76,7 +74,8 @@ public class LldbModelTargetSymbolImpl extends LldbModelTargetObjectImpl DISPLAY_ATTRIBUTE_NAME, getDescription(0), // NAMESPACE_ATTRIBUTE_NAME, symbols, // VALUE_ATTRIBUTE_NAME, value, // - SIZE_ATTRIBUTE_NAME, size // + SIZE_ATTRIBUTE_NAME, size, // + TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, getDescription(0) // /* "Name", symbol.getName(), // "Size", size, // diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java index d97732bfb3..dfdea673a6 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java @@ -1515,6 +1515,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter } public void performSetBreakpoint(ActionContext context) { + setText(context); performAction(context, false, TargetBreakpointSpecContainer.class, container -> { breakpointDialog.setContainer(container); tool.showDialog(breakpointDialog); @@ -1522,6 +1523,21 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter }, "Couldn't set breakpoint"); } + private void setText(ActionContext context) { + breakpointDialog.setText(""); + TargetObject obj = getObjectFromContext(context); + Object key = obj.getCachedAttribute(TargetBreakpointSpec.KEY_ATTRIBUTE_NAME); + if (key != null) { + breakpointDialog.setText(key.toString()); + } + else { + if (obj instanceof DummyTargetObject) { + DummyTargetObject dto = (DummyTargetObject) obj; + breakpointDialog.setText(dto.getValue().toString()); + } + } + } + public void performToggle(ActionContext context) { performAction(context, false, TargetTogglable.class, t -> { return t.toggle(!t.isEnabled()); diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DebuggerBreakpointDialog.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DebuggerBreakpointDialog.java index 43fcfff72e..4fe8d5ad36 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DebuggerBreakpointDialog.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DebuggerBreakpointDialog.java @@ -26,8 +26,8 @@ import javax.swing.*; import docking.DialogComponentProvider; import ghidra.app.plugin.core.debug.gui.DebuggerResources.AbstractSetBreakpointAction; import ghidra.app.plugin.core.debug.gui.objects.DebuggerObjectsProvider; -import ghidra.dbg.target.TargetBreakpointSpecContainer; import ghidra.dbg.target.TargetBreakpointSpec.TargetBreakpointKind; +import ghidra.dbg.target.TargetBreakpointSpecContainer; import ghidra.util.MessageType; import ghidra.util.Msg; import ghidra.util.layout.PairLayout; @@ -91,4 +91,8 @@ public class DebuggerBreakpointDialog extends DialogComponentProvider { this.container = container; } + public void setText(String text) { + expressionField.setText(text); + } + } diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DummyTargetObject.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DummyTargetObject.java index 8e018d4482..334786eb76 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DummyTargetObject.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/components/DummyTargetObject.java @@ -181,8 +181,8 @@ public class DummyTargetObject implements TargetObject { @Override public CompletableFuture> fetchAttributes() { if (!key.equals(TargetObject.DISPLAY_ATTRIBUTE_NAME)) { - if (value != null) { - String display = getName() + " : " + value; + if (getValue() != null) { + String display = getName() + " : " + getValue(); addAttribute(TargetObject.DISPLAY_ATTRIBUTE_NAME, display); } if (kind != null && !kind.equals("")) { @@ -191,8 +191,8 @@ public class DummyTargetObject implements TargetObject { else { addAttribute(TargetObject.KIND_ATTRIBUTE_NAME, "OBJECT_INTRINSIC"); } - if (value != null) { - addAttribute(TargetObject.VALUE_ATTRIBUTE_NAME, value); + if (getValue() != null) { + addAttribute(TargetObject.VALUE_ATTRIBUTE_NAME, getValue()); } if (type != null) { addAttribute(TargetObject.TYPE_ATTRIBUTE_NAME, type); @@ -234,4 +234,8 @@ public class DummyTargetObject implements TargetObject { public String toString() { return getName(); } + + public Object getValue() { + return value; + } } diff --git a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java index 5ec7bc1139..a705491112 100644 --- a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java +++ b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java @@ -69,6 +69,7 @@ public interface TargetBreakpointSpec extends TargetObject, /*@Transitional*/ Ta String CONTAINER_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "container"; String EXPRESSION_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "expression"; String KINDS_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "kinds"; + String KEY_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "key"; /** * Get the container of this breakpoint. From 67abc72e01abc20ffdebe9e14e6c97e4d03b6937 Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Fri, 18 Mar 2022 18:31:36 +0000 Subject: [PATCH 2/3] GP-1824: renamed per review --- .../src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java index a705491112..f4e4fdbe46 100644 --- a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java +++ b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/target/TargetBreakpointSpec.java @@ -69,7 +69,7 @@ public interface TargetBreakpointSpec extends TargetObject, /*@Transitional*/ Ta String CONTAINER_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "container"; String EXPRESSION_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "expression"; String KINDS_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "kinds"; - String KEY_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "key"; + String AS_BPT_ATTRIBUTE_NAME = PREFIX_INVISIBLE + "bpt"; /** * Get the container of this breakpoint. From 28e332207a4ca9e7d10567b8e062ade8aa0dd6b5 Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Fri, 18 Mar 2022 18:35:57 +0000 Subject: [PATCH 3/3] GP-1824: renamed per review --- .../agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java | 4 ++-- .../main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java | 4 ++-- .../java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java | 4 ++-- .../core/debug/gui/objects/DebuggerObjectsProvider.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java index 190bc05a34..2d44f214f2 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetSymbolImpl.java @@ -35,7 +35,7 @@ import ghidra.program.model.address.Address; type = DbgModelTargetSymbolContainerImpl.class), @TargetAttributeType(name = TargetObject.VALUE_ATTRIBUTE_NAME, type = Address.class), @TargetAttributeType(name = TargetSymbol.SIZE_ATTRIBUTE_NAME, type = long.class), - @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), + @TargetAttributeType(name = TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(name = "Name", type = String.class), @TargetAttributeType(name = "Size", type = long.class), @TargetAttributeType(name = "TypeId", type = int.class), @@ -71,7 +71,7 @@ public class DbgModelTargetSymbolImpl extends DbgModelTargetObjectImpl NAMESPACE_ATTRIBUTE_NAME, symbols, // VALUE_ATTRIBUTE_NAME, value, // SIZE_ATTRIBUTE_NAME, size, // - TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, // + TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, // moduleName + "!" + symbol.getName(), // "Name", symbol.getName(), // "Size", size, // diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java index 741ff12342..01d43bbecb 100644 --- a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java +++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/model/impl/GdbModelTargetSymbol.java @@ -30,7 +30,7 @@ import ghidra.program.model.address.Address; elements = { @TargetElementType(type = Void.class) }, attributes = { - @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), + @TargetAttributeType(name = TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(type = Void.class) }) public class GdbModelTargetSymbol extends DefaultTargetObject implements TargetSymbol { @@ -59,7 +59,7 @@ public class GdbModelTargetSymbol extends VALUE_ATTRIBUTE_NAME, value, SIZE_ATTRIBUTE_NAME, size, DISPLAY_ATTRIBUTE_NAME, symbol.getName(), - TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, symbol.getName()), + TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, symbol.getName()), "Initialized"); } diff --git a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java index 5647ac674f..af62e7534b 100644 --- a/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java +++ b/Ghidra/Debug/Debugger-agent-lldb/src/main/java/agent/lldb/model/impl/LldbModelTargetSymbolImpl.java @@ -36,7 +36,7 @@ import ghidra.program.model.address.Address; type = LldbModelTargetSymbolContainerImpl.class), @TargetAttributeType(name = TargetObject.VALUE_ATTRIBUTE_NAME, type = Address.class), @TargetAttributeType(name = TargetSymbol.SIZE_ATTRIBUTE_NAME, type = long.class), - @TargetAttributeType(name = TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, type = String.class), + @TargetAttributeType(name = TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, type = String.class), @TargetAttributeType(name = "Name", type = String.class), @TargetAttributeType(name = "Size", type = long.class), @TargetAttributeType(name = "TypeId", type = int.class), @@ -75,7 +75,7 @@ public class LldbModelTargetSymbolImpl extends LldbModelTargetObjectImpl NAMESPACE_ATTRIBUTE_NAME, symbols, // VALUE_ATTRIBUTE_NAME, value, // SIZE_ATTRIBUTE_NAME, size, // - TargetBreakpointSpec.KEY_ATTRIBUTE_NAME, getDescription(0) // + TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME, getDescription(0) // /* "Name", symbol.getName(), // "Size", size, // diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java index dfdea673a6..4abeae25d1 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java @@ -1526,7 +1526,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter private void setText(ActionContext context) { breakpointDialog.setText(""); TargetObject obj = getObjectFromContext(context); - Object key = obj.getCachedAttribute(TargetBreakpointSpec.KEY_ATTRIBUTE_NAME); + Object key = obj.getCachedAttribute(TargetBreakpointSpec.AS_BPT_ATTRIBUTE_NAME); if (key != null) { breakpointDialog.setText(key.toString()); }