Re: Re: Possible stack frame calc dead code bug again!
Eugene Kuleshov <[email protected]>
| Newsgroups | gmane.comp.java.objectweb.asm |
|---|---|
| Message-ID | <CADFjdoVNHTdx7hod6SiYyffHUVtnLtFe_08PgNSeFyxZeCadag@mail.gmail.com> |
You are right. But can you replace classwriter with asmifier just for this class? It wont write bytecode, but you'll get the source code dumped instead. regards, Eugene On 2011-09-09 5:43 PM, "Charles Oliver Nutter" <[email protected]> wrote: > Ok, perhaps I reveal my weak knowledge of ASM here, but > ASMifierClassVisitor doesn't appear to have a constructor that can > delegate to another visitor. What am I missing? > > - Charlie > > On Fri, Sep 9, 2011 at 4:04 PM, Eugene Kuleshov <[email protected]> wrote: >> Charlie, >> >> You ca just add asmifier visitor before or instead of classwriter into >> visitor chain. >> >> regards, >> Eugene >> >> On 2011-09-09 5:02 PM, "Charles Oliver Nutter" <[email protected]> wrote: >>> Ok, I guess I'm not clear how to do that. How do I get ASMIfier to >>> dump something out before I turn it into bytes? >>> >>> - Charlie >>> >>> On Fri, Sep 9, 2011 at 2:07 PM, Charles Oliver Nutter >>> <[email protected]> wrote: >>>> Ok, I'll give it a try. >>>> >>>> On Fri, Sep 9, 2011 at 1:27 PM, <[email protected]> wrote: >>>>> can you also give the ASMifier code to produce the class, so that we >>>>> have the original bytecode (i.e. before ClassWriter replaces deadcode with >>>>> NOPs)? >>>>> >>>>> Eric >>>>> >>>>> Charles Oliver Nutter wrote: >>>>>> Hello everyone, it's your friendly neighborhood compiler writer who >>>>>> refuses to remove dead code! >>>>>> >>>>>> We have a similar case to the previous bug, though this one appears >>>>>> to >>>>>> only fail verification on Java 7...not on Java 6. >>>>>> >>>>>> The bytecode that fails is shown here: >>>>>> https://gist.github.com/8899f7b0c7f8cd741ef8 >>>>>> >>>>>> The error: >>>>>> >>>>>> Stack map does not match the one at exception handler 56 in method >>>>>> >>>>>> blah.block_0$RUBY$__file__(Lblah;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject; >>>>>> at offset 29 >>>>>> java.lang.VerifyError: Stack map does not match the one at exception >>>>>> handler 56 in method >>>>>> >>>>>> blah.block_0$RUBY$__file__(Lblah;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject; >>>>>> at offset 29 >>>>>> >>>>>> Other than the version number 51 in the class file, the same bytecode >>>>>> verifies on Java 6. Something got stricter in 7? Something broke? >>>>>> >>>>>> I've attached a zip containing the class file and the full output of >>>>>> dumping the entire class's bytecode. >>>>>> >>>>>> This is running on RC1ish (custom build). >>>>>> >>>>>> Help?! >>>>>> >>>>>> - Charlie >>>>>> >>>>>> >>>>>> -- >>>>>> You receive this message as a subscriber of the [email protected] mailing >>>>>> list. >>>>>> To unsubscribe: mailto:[email protected] >>>>>> For general help: mailto:[email protected]?subject=help >>>>>> OW2 mailing lists service home page: http://www.ow2.org/wws >>>>> >>>> >>
message-footer.txt
(text/plain, 238 B)
-- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws