Re: problem with local variable-please help me
Andrew Huntwork <[email protected]>
| Newsgroups | gmane.comp.jakarta.bcel.user |
|---|---|
| Message-ID | <[email protected]> |
sometimes the compiler (or other code generator) produces debugging info
like variable names (like when -g is specified), and sometimes it
doesn't. When it doesn't, it would seem that bcel tells you bogus
names. You can use javap to see what kind of debugging information is
included in a particular class.
basically, in a lot of cases, you'll just be out of luck if you want
local variable names.
Simplice Djoko wrote:
> Hi,
> i have a problem to get the name of the local variable in a method.
> i used LocalVariableTable and LocalVariable[] in this context:
>
> ConstantPoolGen cp = mg.getConstantPool();
> InstructionList il = mg.getInstructionList();
> InstructionList iL = new InstructionList();
> InstructionHandle[] ih = il.getInstructionHandles();
> Instruction[] inst = il.getInstructions();
> .
> .
> .
>
> LocalVariableTable lt = mg.getLocalVariableTable(cp);
> LocalVariable[] lv = lt.getLocalVariableTable();
> for(int t=0; t<lv.length; t++){
> if(lv[t].getName().equals( varNameSpec) && lv[t].getIndex() ==
> ((LocalVariableInstruction)inst[j]).getIndex()){
>
>
> }
> But in certain case this stament is good but in another they return
> only arg0, arg1 who represent the parameters(depend of the number of
> parameters) of the method. I used also LocalVariableGen and i have
> thesame problems.
>
>
> please help me
>