[過去ログ] 今夜も Wine で乾杯! - 22本目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
50
(6): login:Penguin [sage] 2018/12/04(火) 17:30:42 ID:gSafZnb0(1/2) AAS
Wineが提供するWinAPI群の入出力のログを取る機能って無いのかな?
ファイルI/O周りだと思うんだけど理解に苦しむ動作をするので
アプリケーションにどのようなデータが渡されているのか調べてみたい
52
(2): login:Penguin [sage] 2018/12/04(火) 17:58:23 ID:uukhjayz(1) AAS
>>50
https://qiita.com/Yutaka_Aoki/items/bdc2ec3f09f7131329e2

この変に fprintf( stderr, ・・・ ); を使ってデバッグ表示する方法が載っている。
Wineのソースに書けばほぼどんな情報も見ることが出来る。
54
(2): login:Penguin [sage] 2018/12/05(水) 17:56:18 ID:bdljiMIP(1) AAS
>>50
環境変数 WINEDEBUGに必要な機能を指定すると、コンソールにログ吐くよ。
63
(2): 50 [sage] 2018/12/08(土) 13:57:06 ID:hxmpoSna(1) AAS
レスありがとうございます。途中経過です
現象はアプリケーションをリモート(CIFS)に置くとエラー(例外で落ちるわけではない)を吐いて動かないけど
ローカルに置くと起動するという物です。Winだとこの現象は再現しません
ひとまずWineをいじらずにすむ>>54の方法を試してみました
ログを整理していくとGetDriveTypeWの直後から挙動が変わっているように見えます
リモートだと4、ローカルだと3が返りMSDNを見る限り適切ぽくはあります

これをWinで再現しようと試みましたがプログラムにデバッグを妨害する細工が
されているようでステップ実行が行えず、ラッパーDLLを作るしか・・・な感じになっています
67
(1): 50 [sage] 2018/12/09(日) 22:15:36 ID:VE3XEI40(1) AAS
途中経過です
Wineのログが正しければGetDriveTypeWの引数はディレクトリのパスらしいので
似たプログラムを適当にでっち上げて実行してみると
Win7(リモート)→DRIVE_NO_ROOT_DIR(1)
Wine(リモート)→DRIVE_REMOTE(4)
Wine(ローカル)→DRIVE_FIXED(3)
返値が全然違う。MSDNをよく見たらルートディレクトリを指定しろってあるのでWin7の動作が正解っぽい
しょうがないので問題のアプリケーションでどうなっているかラッパーDLLを挟んで調べようとしたけど
Win7(リモート)→GetDriveTypeWを呼んでいる形跡がない
Wine→
 >i386_set_ldt: Invalid argument
 >Did you reconfigure the kernel with "options USER_LDT"?
と怒られて起動出来ない
GetDriveTypeWより前の問題っぽいけどデバッガで追えないので何が起こっているのか判らないのがきつい・・・

>>66
アプリケーションをリモートに置いている理由は「ローカルストレージを圧迫したくないから」なので
ローカルへコピーするのは無しでお願いします
69
(1): 50 [sage] 2018/12/10(月) 00:04:39 ID:8XzLYiz6(1/2) AAS
一応環境を書いておきます
OS:Lubuntu 18.04.1 amd64
Wine:3.0.3
OS:FreeBSD 11.2-R amd64
WM:Xfce 4.12
Wine:i386-3.0.1
ビデオドライバはどちらもnvidiaの340
CIFSの先はWin7
作業しているのはWineの動作状況がマシなFreeBSD
今調べている>>63で書いた現象はLinuxでもFreeBSDでも発生します

もう一本同条件で動作が変わるアプリケーションを見つけました
ポータブルにしてあるfoobar2000をリモートから起動すると終了時に
プレイリストを保存できないとか言い出して設定情報?が破損するようです
これもローカルにコピーするとこの現象は発生しません

こりゃWineのファイルアクセス権に関する制御がおかしいのか?
だとするとファイルI/O関係APIの総点検になり大事になってしまうが・・・

>>68
$mount_smbfs -I 192.168.x.x -g user -u user -E UTF-8:CP932 //USER@HOST/SHARE01 /mnt/X
こんな感じです。mount -t smbfsはなぜかマウントさせられなかったです
これもパッチ当てるなりしてUnicodeのままマウントできるようにしないといけないのですが
73: 50 [sage] 2018/12/10(月) 22:27:05 ID:8XzLYiz6(2/2) AAS
WineとWinで同じデバッグ環境を用意できないし
デバッグ妨害細工のおかげで出来ることが限られ
こういう状況の打破に役立つ情報はネット上にもほとんど無い
実践的なリバースエンジニアリングに役立ちそうな情報と言ったらトラベシアと
@ITのリバースエンジニアリング入門くらいしか知らないし
しかも直接的には役立たない。っと愚痴っても進むわけではないのだがorz

>>70,72
ありがとうございます。NFSですか・・・すぐには難しそうですが試してみたいと思います

>相当厄介な話かも知れませんよ。
うへぇ・・・同期の問題だと非常にやっかいですよね

一応比較的お手軽かつ効果がありそうな方法として仮想ディスクを作ってそれに入れてしまう
という手がありますが、メンテナンスが面倒になりますし最終手段ですね
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s