01-13-2015 8:49 AM
Hello,
I want to write an little Debugger Plugin for the Abap in Eclipse.
The Debugger Plugin should determine some Variables, match the values, and show the results.
My Problem is: How can i get the value of an Variable. (e.g. ZCL_CLASS=>GV_MESSAGE )
I tried something but i didn't find a solution.
For Example:
In the ADT i found the Package: com.sap.adt.debugger.variables
In this Package are Interfaces like: "IAbapVariable".
But i didn't find a documentation about this package and this interfaces.
My Question: How can i get Instances to these Interfaces??
In the Internet i found a Solution to get the Values of the Variables which are current shown in the VariablesView of the Debugger.
This is the Coding:
VariablesView variablesView = (VariablesView) PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().findView(IDebugUIConstants.ID_VARIABLE_VIEW );
IVariable[] variables = null;
Object input;
if (variablesView != null) {
input = (variablesView.getViewer()).getInput();
if (input instanceof IStackFrame) {
try {
variables = ((IStackFrame) input).getVariables();
for (IVariable iVariable : variables) {
IValue value = iVariable.getValue();
System.out.println(iVariable.getName() + "-----" + value.getValueString());
}
catch (DebugException e) {
e.printStackTrace();
}
}
My Problem: My Variables which i need are not always shown in the Variables View. (e.g. Static Class Attributes)
When i use this way, someone have to enter the Variables in the Variables View before he can use my debugger plugin. Thats not really nice. .
I didn't find a way, to add some Variables in the VariablesView via coding of my Plugin?
I hope someone can give me some hints.
Thank you very much.
Regards
Stefan
01-19-2015 10:50 PM
Hello,
I found the solution to determine the Values/References to IAbapVariable.
My code above determines already the StackFrame.
stefan_volkmer wrote:
This is the Coding:
VariablesView variablesView = (VariablesView) PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().findView(IDebugUIConstants.ID_VARIABLE_VIEW );
IVariable[] variables = null;
Object input;
if (variablesView != null) {
input = (variablesView.getViewer()).getInput();
if (input instanceof IStackFrame) {
try {
variables = ((IStackFrame) input).getVariables();
This StackFrame can be cast to com.sap.adt.debugger.IAbapStackFrame
With the coding:
com.sap.adt.debugger.IAbapStackFrame frame = (com.sap.adt.debugger.IAbapStackFrame)input;
com.sap.adt.debugger.variables.IAbapVariable ivariable = frame.findVariable("ZCL_CLASS=>GV_MESSAGE");
you can get the instance to an IAbapVariable....
---------------------------------------------------------------------------------------------------------------
My Second Problem: "Add an Variable to the Variables View via Plugin" seems not possible.
The Class AbapDebugStackFrame has a method: "addCustomVariable". But the class is in an Internal Package: "com.sap.adt.debugger.internal.model".
The Interface IAbapStackFrame (which is not in an internal package) doesn't have this method...
My prototyping continues. When i have enough, i will write a little how to.
Regards
Stefan
01-19-2015 10:50 PM
Hello,
I found the solution to determine the Values/References to IAbapVariable.
My code above determines already the StackFrame.
stefan_volkmer wrote:
This is the Coding:
VariablesView variablesView = (VariablesView) PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().findView(IDebugUIConstants.ID_VARIABLE_VIEW );
IVariable[] variables = null;
Object input;
if (variablesView != null) {
input = (variablesView.getViewer()).getInput();
if (input instanceof IStackFrame) {
try {
variables = ((IStackFrame) input).getVariables();
This StackFrame can be cast to com.sap.adt.debugger.IAbapStackFrame
With the coding:
com.sap.adt.debugger.IAbapStackFrame frame = (com.sap.adt.debugger.IAbapStackFrame)input;
com.sap.adt.debugger.variables.IAbapVariable ivariable = frame.findVariable("ZCL_CLASS=>GV_MESSAGE");
you can get the instance to an IAbapVariable....
---------------------------------------------------------------------------------------------------------------
My Second Problem: "Add an Variable to the Variables View via Plugin" seems not possible.
The Class AbapDebugStackFrame has a method: "addCustomVariable". But the class is in an Internal Package: "com.sap.adt.debugger.internal.model".
The Interface IAbapStackFrame (which is not in an internal package) doesn't have this method...
My prototyping continues. When i have enough, i will write a little how to.
Regards
Stefan