/jeff-native-agent

Primary LanguageC++Apache License 2.0Apache-2.0

jeff-native-agent

Build Status Build status

Dependencies

Debian/Ubuntu:

sudo apt-get install libboost-all-dev

Windows:

choco install boost-msvc-12

Building

Jeff uses cmake:

mkdir build
cd build
cmake ..
make

Testing

./hello.sh --help

Basic scripts

./build.sh && ./hello.sh && less jeff.log
./build.sh && ./hello.sh && cat jeff.log | grep -A 10 "Uncought exception"

Dependecies

  • JDK (mainly jvmti.h)

JVM TI and JNI

Oracle - JVM Tool Interface Version 1.2

Oracle - Java Native Interface Specification

Wikipedia - Java Native Interface

IBM - Best practices for using the Java Native Interface

IBM - Java programming with JNI

IBM - The JNI and the Garbage Collector

Android - JNI Tips

CERT - Coding Standard for Java - JNI

AMD - JVMTI Event Piggybacking For Precise Source Mapping

C++

Google C++ Style Guide

Valgrind

Generating the suppressions:

valgrind -v --leak-check=yes --leak-check=full --show-leak-kinds=all --show-reachable=yes --error-limit=no --log-file=minimalraw.log --gen-suppressions=all java ...
cat ./minimalraw.log | ./parse_valgrind_suppressions.sh > minimal.supp

than manually change minimal.supp into ``

Valgrind Manual - core.suppress

License

Jeff is available under the Apache License Version 2.0. See LICENSE.

Authors

Jeff was mainly written and is maintained by Paweł Prażak and Bartłomiej Antoniak. See the git commit log for details.