Re: [rvm-research] Addressing modes

Erik Brangs <[email protected]>
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <[email protected]>
Hi,

On 26.03.2014 06:06, Priyanka Bhayana wrote:
> Hi,
Your first message reached the mailing list. It is not necessary to send the same message twice. If you want to ask again, it is best to wait a few days and reply to your original message, preferably with new information (i.e. what you have tried and found out in the meantime).

If you don't receive a reply, that can mean that nobody can help you (which can always happen) or that your mail doesn't contain the necessary information. You can try to reduce the chance of the latter happening by reading general information such as the well-known document "How to ask questions the smart way" (http://www.catb.org/~esr/faqs/smart-questions.html) and by providing the necessary information to us. The advice for reporting bugs on our website (http://www.jikesrvm.org/Reporting+Bugs) might help you with determining what kind of information is necessary.

> I am working on jikes and I am trying to find some trace of java program being executed by jikes rvm.

Are you working on the baseline compiler or the optimizing compiler?

> For this purpose I have done some instrumentation in the code array. And the instrumentation just includes one Push and one Pop operation.  I have made all this changes in Assembler.in and genAssembler.sh. This instrumentation is running fine for almost all the addressing modes except for Reg_RegIdx. In this addressing mode it is giving Null pointer exception. Could you please tell what is the dependence of code array and the addressing modes? And the instrumentation has nothing to do with the addressing mode what might be the cause of Null pointer exception?

IIRC we convert all segmentation faults to NullPointerExceptions. The first thing to check would be if your instrumentation interferes with the registers or the stack as it is used in the instrumented instructions.

Some things you could try in no particular order:
- Determine the instruction that causes the NPE by running the rvm with -X:verbose as a command line argument
- Check that the instrumentation works correctly with magic methods and unboxed types
- Run basic and opttests from the pre-commit suite (they aren't very comprehensive but you might get lucky and see a failure)
- Write your own test cases to make debugging easier
- If the NPEs occur in bootimage code, you could use rdb to inspect the bootimage. You can also build a Jikes RVM with gdb debug symbols for bootimage code if you're using a baseline compiled bootimage.
- If you're using MacOS, you should be able to use rdb to debug a running Jikes RVM.


Kind regards,

Erik Brangs

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.