
こんにちわ
JavaからC++のプログラムを呼び出し、ハードウェアを動かすプログラムを開発しているんですが
Javaでプログラムを起動し、C++を呼び出して終了すると
Javaプログラムと同一ディレクトリ内にlogファイルが生成され、困っております。
インターネットで調べたところ、JavaVMのエラーまたはレジストリのエラー
ということがぼんやりわかった程度で、解決策が見つけ出せずにおります。
インターネットでインストールをしなおすと直るとあったので
Javaのインストールをやり直してみたり、logファイルを和訳してみたりしましたが
状況が変わらないためご相談させて頂きます。
どなたかおわかりになる方、少しの情報でもかまいませんので
ご回答宜しくお願い致します。
eclipseコンソール上のエラー文です。logファイルについては文字数制限のためオーバしてしまいました。
内容↓
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x06722cd2, pid=5572, tid=4244
#
# JRE version: 7.0_05-b05
# Java VM: Java HotSpot(TM) Client VM (23.1-b03 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [PCardRW32.dll+0x22cd2] crwSetLineControl+0x203b2
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\eclipse\workspace\ReWriteCard\hs_err_pid5572.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
No.1ベストアンサー
- 回答日時:
JavaVMやレジストリを疑う前に自分らで作った部分を疑うべきだと思うんですが。
># Problematic frame:
># C [PCardRW32.dll+0x22cd2] crwSetLineControl+0x203b2
PCardRW32.dllに何か見覚えありませんか?
私も最近JNIやってますけど、JavaVMがクラッシュするのはたいてい自分たちが作った部分に問題があるのが原因ですよ。
この回答への補足
ご回答ありがとうございます
PCardRW32.dllの
crwSetLineControl関数は他業者さんが提供されている関数でして
crwSetLineControl関数もプログラムの中では記述してないので
何だろうと思ってはいたんですが、やはりこれが原因の可能性が高いのでしょうか
No.3
- 回答日時:
>ですが、プログラムではcrwSetLineControlは記述してないので
>別の関数がcrwSetLineControlを呼び出しているかもしれないので
>そこを調べてみます
あまりcrwSetLineControlに固執しないでくださいね。
># C [PCardRW32.dll+0x22cd2] crwSetLineControl+0x203b2
は、crwSetLineControlのアドレスから+0x203b2の所というだけでcrwSetLineControl関数内とは限りませんので(その場所を表現するのに一番近くのシンボルがcrwSetLineControlだったという事です)
また転記できなかったログの中にはスタックトレースもあると思いますので活用されるとよいかと思います。
お世話になっております。
しばらく調べさせていただき、わかったことは
・BSTRの操作は無関係
・他社製dllのメモリアクセス違反
ということです。
dllを開発された企業に問合せを行ったところ、
Javaには対応していないのでわかりかねる。
との回答を頂き、これ以上良くなることはないかと考えております。
どこで何がアクセス違反を起こしているのかは、今後調べて参りますが
大変難しい作業であると思います。
お忙しい中ご回答頂きまして、大変ありがとうございました。
これに懲りず、また質問させて頂きますので
今後共宜しくお願い致します。
No.2
- 回答日時:
それが原因なのかもしれないし、
それの使い方が悪いのかもしれないし
それは調べてみないとわかりません。
エラーが起きてるところが原因とは限りません。
例:
strcpy(NULL, "null");
strcpyでセグメンテーションエラーが起きるはずですが、strcpyが原因だと思いますか?
この回答への補足
ご回答ありがとうございます
なるほど
そちらの例ですと、10:0で使い方が悪いですね
ですが、プログラムではcrwSetLineControlは記述してないので
別の関数がcrwSetLineControlを呼び出しているかもしれないので
そこを調べてみます
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
eclipseをバージョンアップした...
-
JSPページから、同じJSPページ...
-
コンパイル時にエラーが出てし...
-
JSP内でString型からint型に変...
-
String型とchar型の変換エラーです
-
Eclipseで次のエラー箇所にジャ...
-
javaw.exeプロセスが正常起動し...
-
条件に該当した時のみ定数を宣...
-
javaサーブレットからのoracle...
-
java eclipse apache tomcat 9....
-
JBossについて
-
strutsでのエラーメッセージに...
-
oracle java1.7でsignerエラー
-
シンボルが見つかりませんとい...
-
マイクラでBuildcraftを入れる...
-
classファイルについて
-
javax.mailがimportできない
-
JSPのクラスをコンパイルできな...
-
正しいURL指定しているにもかか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
eclipseをバージョンアップした...
-
tomcat起動時エラー
-
コンパイル時にエラーが出てし...
-
エラー:org.springframeworkが...
-
eclipseでのsvn認証エラー回避方法
-
JSP内でString型からint型に変...
-
構文エラーのやり直しについて
-
タグが閉じてないというエラー...
-
Javaのエラーについてです
-
Eclipse デバッグ エラー処理
-
Eclipseで次のエラー箇所にジャ...
-
致命的: StandardServer.await:...
-
DataSetのFilter
-
java eclipse apache tomcat 9....
-
「型 ArrayList は総称ではあり...
-
eclipseで「Fatal exception oc...
-
シンボルが見つかりませんとい...
-
Hot code replace failed ?
-
eclipseのエラーについて質問で...
おすすめ情報