Hi Nam,
thanks for the reply,
i realy appreciate your time and help for this.
First, the var table is not in the code segment of the method. I read that
that is available if you compile with a debogging option.
If that is not true, that it wil help me further. I will look into that.
Apart from that, to know the local varaibl slot is very tricky. For every
different invokation instruction, these are placed at different points.
So this will be very tricky to do, and to asure 100% good behaviour i will
need to investigate the specification of java.class to know all the possible
ways.
I hoped that there was a easier way. if you get an idea for me, plz tell me.
Thanks again,
Atam
On 11/30/05, Nam T. Nguyen <[EMAIL PROTECTED]> wrote:
>
> Hello Atam,
>
> Wednesday, November 30, 2005, 10:43:00 PM, you wrote:
>
> > Hi all,
>
> > i am also newbie here, but i read alot first about BCEL. My goal is to
> > extra from within a method, which other methods are called, and to
> > which objects these messages are send.
>
> > eg
>
> > public voud m1()
> > {
> > c2 c2obj = new c2();
> > c2obj.m2();
> > }
>
> > Here, wihin m1() there are 2 messages: <init> and m2().
> > This information i can extract with the code below. What i cannot do
> > yet, is to know that these messages are sent to the c2obj object. So,
> > i need the name of the OBJECT to which the messages are sent. If it is
> > a static call, name of object is not needed.
>
> > If anyone can please help me with this, i would appreciate it very much.
>
> > With kind regards,
>
> Basiclly, you'll need two things:
> 1. the LocalVariables attribute of that Code section
> 2. the object (variable slot) that invoke instructions are operated on
>
> The first is easily obtainable. The later is more tricky.
>
> Normally, we would have patterns like:
>
> load xx
> invokevirtual yy
>
> XX is then the local variable slot. Looking it up in the
> LocalVariables table would then give you its name.
>
> However, this doesn't always hold true. In rare cases, the load and
> invoke instructions are very far apart.
>
> Nam
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>