お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-09-04 11:01:56

Demmie
メンバ
登録日: 2008-08-11

Wineで落ちた時のエラー

ある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)

オフライン

 

#2 2008-09-04 11:21:21

avidya
ゲスト

Re: Wineで落ちた時のエラー

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 をエミュレートしていないので、動きませんが。

 

#3 2008-09-04 12:37:58

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

さっそくのレス,ありがとうございます.
そうですか,いきなりメモリフォルトですか・・・

> この cgr.exe というソフトは Windows 用のソフトですか?もし DOS ソフトなら wine は DOS をエミュレートしていないので、動きませんが。

これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.
こんな下のメモリにアクセスしてるということは,ひょっとしてDOSのファンクションコールを使ってるということでしょうか?
・・・あり得るかもしれない.
だとしたら,アウトでしょうか?
でも,何回か起動したんですが・・・??

オフライン

 

#4 2008-09-04 13:20:05

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

> 問題を起こしているのは 32bit アプリケーションですか?

32bitアプリケーションかどうか,はどうしたら調べられますか?

オフライン

 

#5 2008-09-04 17:21:50

avidya
ゲスト

Re: Wineで落ちた時のエラー

Demmieさん による投稿:

32bitアプリケーションかどうか,はどうしたら調べられますか?

 それ以前に、そのソフトをどこから手に入れましたか?vector ?

Demmieさん による投稿:

これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.

 wine は windows 2.0 から windows 3.1 までの 16bit アプリケーションもエミュレートしています。一度 wine の設定を見直してはいかがでしょうか?

 

#6 2008-09-04 17:55:59

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

avidya による投稿:

Demmieさん による投稿:

32bitアプリケーションかどうか,はどうしたら調べられますか?

 それ以前に、そのソフトをどこから手に入れましたか?vector ?

Demmieさん による投稿:

これ自体はWindowsソフトですが,もともとはDOSから移植されたものだと思います.

 wine は windows 2.0 から windows 3.1 までの 16bit アプリケーションもエミュレートしています。一度 wine の設定を見直してはいかがでしょうか?

具体的に言うと,職場で購入した脳波計に付属していた脳波表示ソフトです.
Windows3.1の設定等も試して見ましたが,だめでした.
今日も1度起動に成功したのですが,その後OS全体が固まってしまうという恐ろしい事態になってしまいました.

オフライン

 

#7 2008-09-04 18:31:15

hito
管理者
登録日: 2007-03-18

Re: Wineで落ちた時のエラー

Demmie による投稿:

こんな下のメモリにアクセスしてるということは,ひょっとしてDOSのファンクションコールを使ってるということでしょうか?
・・・あり得るかもしれない.
だとしたら,アウトでしょうか?
でも,何回か起動したんですが・・・??

そこは「下のメモリ」ではなく「特別なメモリ」です。
ほとんどの場合、DOSだからとかではなくて、なにかヘタを打っておかしな
アドレスにアクセスしているだけです。

で、たぶんネットワーク経由でデータを拾ってきて何かをしてくれるもの
だと思うのですが(読み込まれてるDLLから類推)、マトモに動いてくれた
ところで信頼できないと思いますので、脳波計なんぞにwineを使うのは
事故のもとなので止めた方がよろしいかと。

お遊びで使うならいいですけど……。

オフライン

 

#8 2008-09-04 18:48:52

avidya
ゲスト

Re: Wineで落ちた時のエラー

 追い討ちをかけるようですが、0x00000028 なんてアドレスにアクセスするなら、Windows NT 系列の OS、つまり XP 以降でも動かないはずですが。NT 系列の OS の仮想メモリアーキテクチャ自体がそうなっていますので。

 

#9 2008-09-04 19:11:31

hito
管理者
登録日: 2007-03-18

Re: Wineで落ちた時のエラー

いや、wineのバグで踏み抜いている可能性は常にありますので、wine上の
挙動からWindowsネイティブ環境の動作可能性を類推することは困難だと
思いますよ;)

# それに0x28なんてヘタすりゃOSのアーキテクチャ関係なく急所ですって。

オフライン

 

#10 2008-09-04 19:23:07

avidya
ゲスト

Re: Wineで落ちた時のエラー

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)

 

#11 2008-09-04 21:00:54

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

avidyaさん,hitoさん,どうもありがとうございます.
たったフロッピー2枚の小さなアプリなんですけどねえ・・・

>で、たぶんネットワーク経由でデータを拾ってきて何かをしてくれるもの
だと思うのですが(読み込まれてるDLLから類推)

特にネットワークにアクセスするようなものではないんですが・・・なんでそんなことになっちゃうんだろ.
残念です.
最近Ubuntuに出会い,その完成度の高さに感動し,同時にOOoもすごく良くなってて,プリンタの問題やBaseにおけるJavaの問題もOOoのMLでアドバイスしてもらい解決し,ほとんどのことがUbuntu上でできるようになりました.

・・・あとはこの脳波ソフトだけなのにww

オフライン

 

#12 2008-09-05 05:59:55

avidya
ゲスト

Re: Wineで落ちた時のエラー

 今回落ちているところは、ネットワーク云々は関係ないと思いますよ ( 機器との通信はあるので、何らかの通信用の 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 の動作環境をマニュアル等で確かめてください。

 

#13 2008-09-05 09:37:53

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

avidyaさん,どうもありがとうございます.

>とにかく cgr.exe の動作環境をマニュアル等で確かめてください。

古いソフトのため,すでにきちんとしたマニュアルなどはないのですが,配布された当時はWindows98でした.
英語のアプリで,Windowsも英語版を想定しているようですが,日本語版のWin98, Me, XP等では問題なく動作していました.

とりあえず,致命的なエラーであることがわかったので,当分おとなしくWindowsにブートしなおして使うことにします.
また,wineのバージョンが上がった時にでも,再挑戦してみます.
どうもありがとうございました.

オフライン

 

#14 2008-09-05 16:09:35

avidya
ゲスト

Re: Wineで落ちた時のエラー

 Windows とのデュアルブートという選択肢はどうでしょうか?わたしも Ubuntu で mp3 プレイヤーへの楽曲転送ができることが分かるまで、ただそれだけのために WindowsXP とデュアルブートにしてましたが。

 

#15 2008-09-05 17:02:39

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

「デュアルブート」というのは,Windowsの中にインストールしちゃう,みたいなやつですか?
なんかLinuxの真価が発揮されないような気がして,気が進みません.
今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.

オフライン

 

#16 2008-09-05 17:26:56

avidya
ゲスト

Re: Wineで落ちた時のエラー

Demmieさん による投稿:

今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.

 それがデュアルブートです (^_^;)

 

#17 2008-09-05 17:33:30

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

avidya による投稿:

Demmieさん による投稿:

今までどおり,GRUB(?)でしたっけ,LILOでしたっけ?,とにかく起動時に切り替えるようにします.

 それがデュアルブートです (^_^;)

おー,そうか!
それなら,やってまっせ.

オフライン

 

#18 2008-12-15 12:10:00

Demmie
メンバ
登録日: 2008-08-11

Re: Wineで落ちた時のエラー

みなさん,その節は大変お世話になりました.
はや4ヶ月が経ち,Ubuntuは8.10,Wineは1.0.1になりました.
先日ふと思い出して,例のアプリを起動してみたところ,なんと,全く問題なく動きました!
とてもうれしいです.
結局あの「0x28問題」は,Wineのバグだったということでしょうか・・・
とりあえず,ご報告でした.

オフライン

 

Board footer

Powered by FluxBB