[Soot-list] Soot + Jikes
Khilan Gudka
khilan at doc.ic.ac.uk
Sat Jul 3 10:04:57 EDT 2010
Hi Eric,
Thanks for the reply. I'm not so sure that it's a Jikes-only bug. In the
case of hsqldb, the method which ultimate leads to a trap is
org.hsqldb.Database.isShutdown().
The source code is:
synchronized boolean isShutdown() {
return dbState == DATABASE_SHUTDOWN;
}
The non-transformed bytecode is:
synchronized isShutdown() : boolean
L0
LINENUMBER 376 L0
ALOAD 0: this
GETFIELD Database.dbState : int
BIPUSH 16
IF_ICMPNE L1
ICONST_1
IRETURN
L1
ICONST_0
IRETURN
L2
LOCALVARIABLE this Database L0 L2 0
MAXSTACK = 2
MAXLOCALS = 1
The soot-transformed code is:
synchronized isShutdown()Z
ALOAD 0
GETFIELD org/hsqldb/Database.dbState : I
BIPUSH 16
IF_ICMPNE L0
ICONST_1
ISTORE 0
GOTO L1
L0
ICONST_0
ISTORE 0
L1
ILOAD 0
IRETURN
MAXSTACK = 2
MAXLOCALS = 1
In particular, I think the problem is the ISTORE 0 instructions, which if
I'm not mistaken incorrectly sets local 0 = "this" to either 1 or 0
depending if the values are equal or not. Isn't the return variable local 1?
Thanks,
Khilan
On 3 July 2010 12:32, Eric Bodden <bodden at st.informatik.tu-darmstadt.de>wrote:
> Hi Khilan.
>
> > Anyone come across this before and know how to solve it?
>
> I guess it would help more to ask the Jikes developers. In the
> transformed program runs on other VMS then clearly this error is due
> to a bug in Jikes, not in Soot. At our lab we have some experience
> with Jikes and from what I have heard it's not uncommon for Jikes to
> fail on larger programs.
>
> Eric
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20100703/f9de709b/attachment.html
More information about the Soot-list
mailing list