
Ubuntu日本語フォーラム

ログインしていません。
あるWinアプリをWine(Ubuntu8.04のSynapticから普通にwineをインストール)上でインストールしました.
ポピュラーなものではありませんが,DOSアプリに毛の生えたようなもので,さほど特殊なことはしていない(データを読み込んでグラフ表示するようなもの)ソフトです.
問題なくインストールされ,起動できたことも数回あったのですが,ほとんど場合,数秒間ウィンドウが表示された後,落ちてしまいます.
ターミナルから起動すると,以下のような表示がされました.
「Deferred」という言葉がやたら出てきますが,すべての呼び出しが延期されちゃってるのでしょうか?
「AppDB」などには登録されていないものなので,とりあえず,エラーの解釈について何かわかることがありましたら,お願いします.
(一部匿名化してます)
○○@△△:~/.wine/drive_c/Program Files/○○$ wine cgr.exe
wine: Unhandled page fault on read access to 0x00000028 at address 0x45da5b (thread 001a), starting debugger...
Unhandled exception: page fault on read access to 0x00000028 in 32-bit code (0x0045da5b).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:0045da5b ESP:7d76798c EBP:7d767998 EFLAGS:00210206( - 00 - RIP1)
EAX:00e61440 EBX:00000088 ECX:00000000 EDX:00000000
ESI:00e615e0 EDI:0032f2ac
Stack dump:
0x7d76798c: ffffffff 00000000 00e61440 7d767a04
0x7d76799c: 004f5f5a 00e614d4 004e3fd0 00e61650
0x7d7679ac: 7bc88444 b7e13ff4 0051ff64 00000001
0x7d7679bc: 00000000 00000000 00000000 00000001
0x7d7679cc: 00000000 00000000 00000000 00000000
0x7d7679dc: 00000000 00000000 00000000 00000000
Backtrace:
=>1 0x0045da5b in cgr (+0x5da5b) (0x7d767998)
2 0x004f5f5a in cgr (+0xf5f5a) (0x7d767a04)
3 0x004e4035 in cgr (+0xe4035) (0x7d767a38)
4 0x7bc6aeae call_thread_entry_point+0xe() in ntdll (0x7d767a48)
5 0x7bc6b542 in ntdll (+0x5b542) (0x7d767ae8)
6 0x7bc6b772 in ntdll (+0x5b772) (0x7d7683d8)
7 0xb7e1e4fb start_thread+0xcb() in libpthread.so.0 (0x7d7684c8)
0x0045da5b: movl 0x28(%edx),%eax
Modules:
Module Address Debug info Name (92 modules)
PE 400000- 612000 Export cgr
PE 10000000-10059000 Deferred c4dll
ELF 7b800000-7b92d000 Deferred kernel32<elf>
\-PE 7b820000-7b92d000 \ kernel32
ELF 7bc00000-7bca4000 Export ntdll<elf>
\-PE 7bc10000-7bca4000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7d87a000-7d87e000 Deferred libgpg-error.so.0
ELF 7d87e000-7d8cb000 Deferred libgcrypt.so.11
ELF 7d8cb000-7d8db000 Deferred libtasn1.so.3
ELF 7d8db000-7d90d000 Deferred libcrypt.so.1
ELF 7d90d000-7d983000 Deferred libgnutls.so.13
ELF 7d983000-7d9a6000 Deferred libk5crypto.so.3
ELF 7d9a6000-7da33000 Deferred libkrb5.so.3
ELF 7da33000-7da5c000 Deferred libgssapi_krb5.so.2
ELF 7da5c000-7da8f000 Deferred libcups.so.2
ELF 7dac0000-7db21000 Deferred rpcrt4<elf>
\-PE 7dad0000-7db21000 \ rpcrt4
ELF 7db21000-7dbc5000 Deferred ole32<elf>
\-PE 7db30000-7dbc5000 \ ole32
ELF 7e3a9000-7e3dc000 Deferred uxtheme<elf>
\-PE 7e3b0000-7e3dc000 \ uxtheme
ELF 7e3dc000-7e3f0000 Deferred midimap<elf>
\-PE 7e3e0000-7e3f0000 \ midimap
ELF 7e3f0000-7e416000 Deferred msacm32<elf>
\-PE 7e400000-7e416000 \ msacm32
ELF 7e416000-7e42d000 Deferred msacm32<elf>
\-PE 7e420000-7e42d000 \ msacm32
ELF 7e42d000-7e4f0000 Deferred libasound.so.2
ELF 7e4f1000-7e4f4000 Deferred libkeyutils.so.1
ELF 7e4fd000-7e533000 Deferred winealsa<elf>
\-PE 7e510000-7e533000 \ winealsa
ELF 7e533000-7e53c000 Deferred libxcursor.so.1
ELF 7e53c000-7e541000 Deferred libxfixes.so.3
ELF 7e541000-7e544000 Deferred libxcomposite.so.1
ELF 7e544000-7e54a000 Deferred libxrandr.so.2
ELF 7e54a000-7e552000 Deferred libxrender.so.1
ELF 7e552000-7e555000 Deferred libxinerama.so.1
ELF 7e555000-7e575000 Deferred imm32<elf>
\-PE 7e560000-7e575000 \ imm32
ELF 7e575000-7e57a000 Deferred libxdmcp.so.6
ELF 7e57a000-7e592000 Deferred libxcb.so.1
ELF 7e592000-7e595000 Deferred libxau.so.6
ELF 7e595000-7e680000 Deferred libx11.so.6
ELF 7e680000-7e68e000 Deferred libxext.so.6
ELF 7e68e000-7e6a6000 Deferred libice.so.6
ELF 7e6a6000-7e6ae000 Deferred libsm.so.6
ELF 7e6ae000-7e6b6000 Deferred libkrb5support.so.0
ELF 7e6b6000-7e6b9000 Deferred libcom_err.so.2
ELF 7e6bb000-7e752000 Deferred winex11<elf>
\-PE 7e6d0000-7e752000 \ winex11
ELF 7e774000-7e795000 Deferred libexpat.so.1
ELF 7e795000-7e7bf000 Deferred libfontconfig.so.1
ELF 7e7bf000-7e7c1000 Deferred libxcb-xlib.so.0
ELF 7e7cc000-7e7e1000 Deferred libz.so.1
ELF 7e7e1000-7e851000 Deferred libfreetype.so.6
ELF 7e851000-7e856000 Deferred libxxf86vm.so.1
ELF 7e85e000-7e871000 Deferred libresolv.so.2
ELF 7e87e000-7e89c000 Deferred iphlpapi<elf>
\-PE 7e880000-7e89c000 \ iphlpapi
ELF 7e89c000-7e8c8000 Deferred ws2_32<elf>
\-PE 7e8a0000-7e8c8000 \ ws2_32
ELF 7e8c8000-7e8e2000 Deferred wsock32<elf>
\-PE 7e8d0000-7e8e2000 \ wsock32
ELF 7e8e2000-7e918000 Deferred winspool<elf>
\-PE 7e8f0000-7e918000 \ winspool
ELF 7e918000-7e9d7000 Deferred comctl32<elf>
\-PE 7e920000-7e9d7000 \ comctl32
ELF 7e9d7000-7ea30000 Deferred shlwapi<elf>
\-PE 7e9e0000-7ea30000 \ shlwapi
ELF 7ea30000-7eb43000 Deferred shell32<elf>
\-PE 7ea40000-7eb43000 \ shell32
ELF 7eb43000-7ebee000 Deferred comdlg32<elf>
\-PE 7eb50000-7ebee000 \ comdlg32
ELF 7ebee000-7ec40000 Deferred advapi32<elf>
\-PE 7ec00000-7ec40000 \ advapi32
ELF 7ec40000-7ecdb000 Deferred gdi32<elf>
\-PE 7ec50000-7ecdb000 \ gdi32
ELF 7ecdb000-7ee22000 Deferred user32<elf>
\-PE 7ed00000-7ee22000 \ user32
ELF 7ee22000-7eeb4000 Deferred winmm<elf>
\-PE 7ee30000-7eeb4000 \ winmm
ELF 7efa1000-7efac000 Deferred libnss_files.so.2
ELF 7efac000-7efb6000 Deferred libnss_nis.so.2
ELF 7efb6000-7efce000 Deferred libnsl.so.1
ELF 7efce000-7eff3000 Deferred libm.so.6
ELF 7eff7000-7f000000 Deferred libnss_compat.so.2
ELF b7cc5000-b7cc9000 Deferred libdl.so.2
ELF b7cc9000-b7e18000 Deferred libc.so.6
ELF b7e19000-b7e31000 Export libpthread.so.0
ELF b7e3e000-b7f74000 Deferred libwine.so.1
ELF b7f76000-b7f92000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files\○○\Cgr.exe
0000001a 0 <==
00000019 15
00000009 0
0000000c
00000014 0
00000013 0
00000012 0
0000000e 0
0000000d 0
0000000f
00000016 0
00000015 0
00000011 0
00000010 0
00000017
00000018 0
Backtrace:
=>1 0x0045da5b in cgr (+0x5da5b) (0x7d767998)
2 0x004f5f5a in cgr (+0xf5f5a) (0x7d767a04)
3 0x004e4035 in cgr (+0xe4035) (0x7d767a38)
4 0x7bc6aeae call_thread_entry_point+0xe() in ntdll (0x7d767a48)
5 0x7bc6b542 in ntdll (+0x5b542) (0x7d767ae8)
6 0x7bc6b772 in ntdll (+0x5b772) (0x7d7683d8)
7 0xb7e1e4fb start_thread+0xcb() in libpthread.so.0 (0x7d7684c8)
オフライン
Demmieさん による投稿:
あるWinアプリをWine(Ubuntu8.04のSynapticから普通にwineをインストール)上でインストールしました.
ポピュラーなものではありませんが,DOSアプリに毛の生えたようなもので,さほど特殊なことはしていない(データを読み込んでグラフ表示するようなもの)ソフトです.
問題を起こしているのは 32bit アプリケーションですか?
wine: Unhandled page fault on read access to 0x00000028 at address 0x45da5b (thread 001a), starting debugger... Unhandled exception: page fault on read access to 0x00000028 in 32-bit code (0x0045da5b).
いきなりメモリフォルトを起こしていますね。というか Windows で "0x00000028" は、たしかユーザプロセスからアクセスすると、致命的なエラーとして例外を発生させませんでしたっけ。
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files\○○\Cgr.exe
0000001a 0 <== ここでメモリフォルトを起こしています。
この cgr.exe というソフトは Windows 用のソフトですか?もし DOS ソフトなら wine は DOS をエミュレートしていないので、動きませんが。
さっそくのレス,ありがとうございます.
そうですか,いきなりメモリフォルトですか・・・
> この cgr.exe というソフトは Windows 用のソフトですか?もし DOS ソフトなら wine は DOS をエミュレートしていないので、動きませんが。
これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.
こんな下のメモリにアクセスしてるということは,ひょっとしてDOSのファンクションコールを使ってるということでしょうか?
・・・あり得るかもしれない.
だとしたら,アウトでしょうか?
でも,何回か起動したんですが・・・??
オフライン
> 問題を起こしているのは 32bit アプリケーションですか?
32bitアプリケーションかどうか,はどうしたら調べられますか?
オフライン
Demmieさん による投稿:
32bitアプリケーションかどうか,はどうしたら調べられますか?
それ以前に、そのソフトをどこから手に入れましたか?vector ?
Demmieさん による投稿:
これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.
wine は windows 2.0 から windows 3.1 までの 16bit アプリケーションもエミュレートしています。一度 wine の設定を見直してはいかがでしょうか?
avidya による投稿:
Demmieさん による投稿:
32bitアプリケーションかどうか,はどうしたら調べられますか?
それ以前に、そのソフトをどこから手に入れましたか?vector ?
Demmieさん による投稿:
これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.
wine は windows 2.0 から windows 3.1 までの 16bit アプリケーションもエミュレートしています。一度 wine の設定を見直してはいかがでしょうか?
具体的に言うと,職場で購入した脳波計に付属していた脳波表示ソフトです.
Windows3.1の設定等も試して見ましたが,だめでした.
今日も1度起動に成功したのですが,その後OS全体が固まってしまうという恐ろしい事態になってしまいました.
オフライン
Demmie による投稿:
こんな下のメモリにアクセスしてるということは,ひょっとしてDOSのファンクションコールを使ってるということでしょうか?
・・・あり得るかもしれない.
だとしたら,アウトでしょうか?
でも,何回か起動したんですが・・・??
そこは「下のメモリ」ではなく「特別なメモリ」です。
ほとんどの場合、DOSだからとかではなくて、なにかヘタを打っておかしな
アドレスにアクセスしているだけです。
で、たぶんネットワーク経由でデータを拾ってきて何かをしてくれるもの
だと思うのですが(読み込まれてるDLLから類推)、マトモに動いてくれた
ところで信頼できないと思いますので、脳波計なんぞにwineを使うのは
事故のもとなので止めた方がよろしいかと。
お遊びで使うならいいですけど……。
オフライン
追い討ちをかけるようですが、0x00000028 なんてアドレスにアクセスするなら、Windows NT 系列の OS、つまり XP 以降でも動かないはずですが。NT 系列の OS の仮想メモリアーキテクチャ自体がそうなっていますので。
いや、wineのバグで踏み抜いている可能性は常にありますので、wine上の
挙動からWindowsネイティブ環境の動作可能性を類推することは困難だと
思いますよ;)
# それに0x28なんてヘタすりゃOSのアーキテクチャ関係なく急所ですって。
オフライン
hitoさん による投稿:
いや、wineのバグで踏み抜いている可能性は常にありますので、wine上の
挙動からWindowsネイティブ環境の動作可能性を類推することは困難だと
思いますよ;)
# それに0x28なんてヘタすりゃOSのアーキテクチャ関係なく急所ですって。
あぁ、フォローしようと思ってたのに、先を越されてしまった orz
0x28 が Ubuntu の仮想メモリアドレスなのか、wine がエミュレートしている Windows の仮想メモリアドレスなのかが、そういえばわからんなぁ、と気がついたので。
まぁ、どんな OS でも確かに急所ですね。Windows の場合は、ほんとはアクセスしても問題がないんですが、初めの 1024KB は、無条件に例外を発生させてアプリケーションを落とします。これは 0x00 へのアクセスなどのポインターのバグ対策なんですけどね。そこから 1MB は DOS 仮想マシンのために使うことになってます。
# ただし上記 Windows 関連の情報は古いかもしれません。
# いつの間にかユーザプロセスが 3G までアドレス空間を利用できるように
# なっているらしいですし。これまではユーザプロセスが利用できるのは
# 2G までで、のこりの 2G は OS が使うことになっていたのに。
# どちらにしろどの OS をつかうにせよ、脳波計のメーカーに利用環境を
# 問い合わせた方がいいですよ。.NET アプリケーションかもしれませんし。
最後の編集者: avidya (2008-09-04 20:50:02)
avidyaさん,hitoさん,どうもありがとうございます.
たったフロッピー2枚の小さなアプリなんですけどねえ・・・
>で、たぶんネットワーク経由でデータを拾ってきて何かをしてくれるもの
だと思うのですが(読み込まれてるDLLから類推)
特にネットワークにアクセスするようなものではないんですが・・・なんでそんなことになっちゃうんだろ.
残念です.
最近Ubuntuに出会い,その完成度の高さに感動し,同時にOOoもすごく良くなってて,プリンタの問題やBaseにおけるJavaの問題もOOoのMLでアドバイスしてもらい解決し,ほとんどのことがUbuntu上でできるようになりました.
・・・あとはこの脳波ソフトだけなのにww
オフライン
今回落ちているところは、ネットワーク云々は関係ないと思いますよ ( 機器との通信はあるので、何らかの通信用の dll は読み込むのは当然ですが )。重要なのはここです。
Backtrace: =>1 0x0045da5b in cgr (+0x5da5b) (0x7d767998) 2 0x004f5f5a in cgr (+0xf5f5a) (0x7d767a04) 3 0x004e4035 in cgr (+0xe4035) (0x7d767a38) 4 0x7bc6aeae call_thread_entry_point+0xe() in ntdll (0x7d767a48) 5 0x7bc6b542 in ntdll (+0x5b542) (0x7d767ae8) 6 0x7bc6b772 in ntdll (+0x5b772) (0x7d7683d8) 7 0xb7e1e4fb start_thread+0xcb() in libpthread.so.0 (0x7d7684c8)
これを見る限り、wine が cgr 用のスレッドを作って、そのスレッドに ntdll を読み込み、Windows アプリケーションをそのスレッド上で cgr を実行して、すぐに落ちてますから。
とにかく cgr.exe の動作環境をマニュアル等で確かめてください。
avidyaさん,どうもありがとうございます.
>とにかく cgr.exe の動作環境をマニュアル等で確かめてください。
古いソフトのため,すでにきちんとしたマニュアルなどはないのですが,配布された当時はWindows98でした.
英語のアプリで,Windowsも英語版を想定しているようですが,日本語版のWin98, Me, XP等では問題なく動作していました.
とりあえず,致命的なエラーであることがわかったので,当分おとなしくWindowsにブートしなおして使うことにします.
また,wineのバージョンが上がった時にでも,再挑戦してみます.
どうもありがとうございました.
オフライン
Windows とのデュアルブートという選択肢はどうでしょうか?わたしも Ubuntu で mp3 プレイヤーへの楽曲転送ができることが分かるまで、ただそれだけのために WindowsXP とデュアルブートにしてましたが。
「デュアルブート」というのは,Windowsの中にインストールしちゃう,みたいなやつですか?
なんかLinuxの真価が発揮されないような気がして,気が進みません.
今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.
オフライン
Demmieさん による投稿:
今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.
それがデュアルブートです (^_^;)
avidya による投稿:
Demmieさん による投稿:
今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.
それがデュアルブートです (^_^;)
おー,そうか!
それなら,やってまっせ.
オフライン
みなさん,その節は大変お世話になりました.
はや4ヶ月が経ち,Ubuntuは8.10,Wineは1.0.1になりました.
先日ふと思い出して,例のアプリを起動してみたところ,なんと,全く問題なく動きました!
とてもうれしいです.
結局あの「0x28問題」は,Wineのバグだったということでしょうか・・・
とりあえず,ご報告でした.
オフライン