java-sigfpe-emulator Code
Track down floating point divisions by zero in large Java applications
Brought to you by:
oddwarg
File | Date | Author | Commit |
---|---|---|---|
.settings | 2018-07-16 |
![]() |
[64f5ee] Initial import |
src | 2018-07-16 |
![]() |
[64f5ee] Initial import |
test | 2020-05-06 |
![]() |
[5ae0d1] Added readme |
.classpath | 2018-07-16 |
![]() |
[64f5ee] Initial import |
.hgignore | 2020-05-06 |
![]() |
[5ae0d1] Added readme |
.project | 2018-07-16 |
![]() |
[64f5ee] Initial import |
README.md | 2018-07-16 |
![]() |
[43165f] README.md edited online with Bitbucket |
README.txt | 2020-05-06 |
![]() |
[5ae0d1] Added readme |
noNaN.png | 2020-01-07 |
![]() |
[6ba813] Added logo graphic to revision control |
processBytecode.bat | 2018-07-16 |
![]() |
[64f5ee] Initial import |
------------------------ JAVA-SIGFPE-EMULATOR ------------------------
This program lets you modify Java bytecode so that it throws an
ArithmeticException on floating point division by zero (32- & 64-bit).
It allows you to track down code that generates undesirable Infinities
and NaNs in your Java application without wasting enormous amounts of
time on blind debugging.
Instructions:
1. Make sure Java 1.7 or greater and Python 2.7 are installed.
2. Get the Krakatau code from https://github.com/Storyyeller/Krakatau
3. Edit the variables in the "processBytecode.bat" script as required
4. Run the processBytecode.bat script
Bat scripts are for Windows only, but are trivial to rewrite for Linux.
Do not run the script multiple times on the same binary. It will crash.
Read the source code comments for additional information.
----------------------------- Disclaimer -----------------------------
This program is distributed in the hope that it will be useful, but is
provided AS IS with ABSOLUTELY NO WARRANTY; The entire risk as to the
quality and performance of the program is with you. Should the program
prove defective, you assume the cost of all necessary servicing,
repair or correction. In no event will any of the developers, or any
other party, be liable to anyone for damages arising out of the use or
inability to use the program.