(This is a pretty old writeup, but it likely applies to newer versions of both development environments.)
Sometimes your JNI DLLs will crash, leaving you with the fun task of figuring out why. If you have access to the native source code, this proves to be pretty easy.
First, you need to create the Java application and JNI DLL in the usual manner. The process of creating the source code for the JNI is not covered here, but the project files for the examples used to create the screenshots can be obtained by downloading the following zip file.
test-jni-example-files.zip [see contents]
In your NetBeans project directory, you will notice that the dist directory containing the Java application also contains the JNI DLL and Program Debug Database (pdb) file, which is needed to map errors to the corresponding source code. You have to copy these two files by hand to the dist directory after building them in VS2008 Express. In a real environment, these would hopefully be built by continuous integration.
In NetBeans, run the Java application. The following should appear:
In VS2008 Express, with the DLL project open, go to the Debug -> Attach to Process menu option and attach to the running copy of the Java application.
By default in VS2008 Express, only a select number of exceptions are caught by default by the debugger. However, you want to make sure all exceptions are caught, so make sure that the checkmark next to "Win32 Exceptions" is fully black-and-white and not gray.
In the Java application, click on the Test Bad Function button.
When the badFunction is called, and it attempts to write to an invalid memory location, the Visual Studio debugger will catch this exception and show you the line of code responsible.
This should provide you the information needed to implement a fix.
Length Date Time Name
--------- ---------- ----- ----
0 2010-07-07 17:24 test-jni-c/
0 2010-07-07 17:24 test-jni-c/test-jni-c/
901 2010-07-07 15:07 test-jni-c/test-jni-c.sln
410 2010-07-07 15:07 test-jni-c/test-jni-c/dllmain.cpp
311 2010-07-07 17:11 test-jni-c/test-jni-c/org_vilimpoc_Jni.cpp
613 2010-07-07 16:57 test-jni-c/test-jni-c/org_vilimpoc_Jni.h
1305 2010-07-07 15:07 test-jni-c/test-jni-c/ReadMe.txt
297 2010-07-07 15:07 test-jni-c/test-jni-c/stdafx.cpp
468 2010-07-07 17:04 test-jni-c/test-jni-c/stdafx.h
1428 2010-07-07 15:07 test-jni-c/test-jni-c/targetver.h
696 2010-07-07 17:04 test-jni-c/test-jni-c/test-jni-c.cpp
851 2010-07-07 15:07 test-jni-c/test-jni-c/test-jni-c.h
5390 2010-07-07 17:03 test-jni-c/test-jni-c/test-jni-c.vcproj
0 2010-07-07 17:24 test-jni-java/
0 2010-07-07 17:25 test-jni-java/build/
3734 2010-07-07 15:14 test-jni-java/build.xml
63 2010-07-07 16:28 test-jni-java/build/built-jar.properties
0 2010-07-07 17:25 test-jni-java/build/classes/
0 2010-07-07 16:32 test-jni-java/build/classes/.netbeans_automatic_build
0 2010-07-07 17:25 test-jni-java/build/classes/META-INF/
0 2010-07-07 17:25 test-jni-java/build/classes/META-INF/services/
23 2010-07-07 16:28 test-jni-java/build/classes/META-INF/services/org.jdesktop.application.Application
0 2010-07-07 17:25 test-jni-java/build/classes/org/
0 2010-07-07 17:25 test-jni-java/build/classes/org/vilimpoc/
347 2010-07-07 16:56 test-jni-java/build/classes/org/vilimpoc/Jni.class
0 2010-07-07 17:25 test-jni-java/build/classes/org/vilimpoc/resources/
8187 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/about.png
0 2010-07-07 17:25 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/
3588 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon0.png
3585 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon1.png
3568 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon10.png
3581 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon11.png
3589 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon12.png
3586 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon13.png
3586 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon14.png
3585 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon2.png
3572 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon3.png
3576 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon4.png
3580 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon5.png
3581 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon6.png
3598 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon7.png
3594 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon8.png
3581 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/busy-icon9.png
3360 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/busyicons/idle-icon.png
21747 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/splash.png
278 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/TestJniAboutBox.properties
433 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/TestJniApp.properties
1221 2010-07-07 16:28 test-jni-java/build/classes/org/vilimpoc/resources/TestJniView.properties
6059 2010-07-07 16:32 test-jni-java/build/classes/org/vilimpoc/TestJniAboutBox.class
1394 2010-07-07 17:08 test-jni-java/build/classes/org/vilimpoc/TestJniApp.class
885 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$1.class
1109 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$2.class
2281 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$3.class
751 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$4.class
751 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$5.class
721 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView$6.class
10389 2010-07-07 17:18 test-jni-java/build/classes/org/vilimpoc/TestJniView.class
0 2010-07-07 17:25 test-jni-java/build/empty/
0 2010-07-07 17:24 test-jni-java/dist/
0 2010-07-07 17:24 test-jni-java/dist/lib/
264192 2010-07-07 16:28 test-jni-java/dist/lib/appframework-1.0.3.jar
11007 2010-07-07 16:28 test-jni-java/dist/lib/swing-worker-1.1.jar
1452 2010-07-07 16:28 test-jni-java/dist/README.TXT
28160 2010-07-07 17:11 test-jni-java/dist/test-jni-c.dll
846848 2010-07-07 17:11 test-jni-java/dist/test-jni-c.pdb
118420 2010-07-07 16:28 test-jni-java/dist/test-jni-java.jar
82 2010-07-07 15:14 test-jni-java/manifest.mf
0 2010-07-07 17:24 test-jni-java/nbproject/
48407 2010-07-07 15:14 test-jni-java/nbproject/build-impl.xml
475 2010-07-07 15:14 test-jni-java/nbproject/genfiles.properties
0 2010-07-07 17:24 test-jni-java/nbproject/private/
0 2010-07-07 16:50 test-jni-java/nbproject/private/config.properties
230 2010-07-07 16:50 test-jni-java/nbproject/private/private.properties
211 2010-07-07 17:24 test-jni-java/nbproject/private/private.xml
2358 2010-07-07 16:50 test-jni-java/nbproject/project.properties
721 2010-07-07 15:14 test-jni-java/nbproject/project.xml
0 2010-07-07 17:24 test-jni-java/src/
0 2010-07-07 17:24 test-jni-java/src/META-INF/
0 2010-07-07 17:24 test-jni-java/src/META-INF/services/
23 2010-07-07 15:14 test-jni-java/src/META-INF/services/org.jdesktop.application.Application
0 2010-07-07 17:24 test-jni-java/src/org/
0 2010-07-07 17:24 test-jni-java/src/org/vilimpoc/
207 2010-07-07 16:56 test-jni-java/src/org/vilimpoc/Jni.java
0 2010-07-07 17:24 test-jni-java/src/org/vilimpoc/resources/
8187 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/about.png
0 2010-07-07 17:24 test-jni-java/src/org/vilimpoc/resources/busyicons/
3588 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon0.png
3585 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon1.png
3568 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon10.png
3581 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon11.png
3589 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon12.png
3586 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon13.png
3586 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon14.png
3585 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon2.png
3572 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon3.png
3576 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon4.png
3580 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon5.png
3581 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon6.png
3598 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon7.png
3594 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon8.png
3581 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/busy-icon9.png
3360 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/busyicons/idle-icon.png
21747 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/splash.png
278 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/TestJniAboutBox.properties
433 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/resources/TestJniApp.properties
1221 2010-07-07 15:33 test-jni-java/src/org/vilimpoc/resources/TestJniView.properties
11611 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/TestJniAboutBox.form
7429 2010-07-07 15:14 test-jni-java/src/org/vilimpoc/TestJniAboutBox.java
1223 2010-07-07 16:54 test-jni-java/src/org/vilimpoc/TestJniApp.java
11613 2010-07-07 17:18 test-jni-java/src/org/vilimpoc/TestJniView.form
11839 2010-07-07 17:18 test-jni-java/src/org/vilimpoc/TestJniView.java
0 2010-07-07 17:24 test-jni-java/test/
--------- -------
1585637 112 files