Troubleshooting Native Memory Leaks in Java Applications