« 車、買いました。 | Home | 原付に乗りながらカレーライス »
2008年2月21日
たまには仕事の話なんぞを。
今日のお仕事の話。
以前、サポートの人に、
「このマシンでEXEを起動すると、CPU使用率が100%になるんだよー」
と、言われてたのを思い出したけぇ、今日行ってみたんよ。
ほんなら、
「あの問題ですね、解決策がみつかったんですよ。
EXEの置いてあるフォルダを変更すると、CPU使用率が100%にならないんですよ。」
『・・・え゛ー???
そんな症状、一度も聞いたことないんですけど。
まぁ、とりあえず調べてみます。』
と、マシンを受け取って。
調査。
まずは疑うべきはウイルスバスター。
以前、ウイルスバスターには、悩まされとるし。
この時は、とあるスクリプトの関数を呼ぶと固まるっていう現象じゃったんじゃけど。
それ以外にも、あんなことやこんなことで悩まされたことがあるんじゃけど!(怒)
ま、それは置いておいて。
ファイアーウォールでネットワークが遮断されて、うまく動いとらんのんじゃねぇんかなー
と思ったんじゃけど、試してみたところ、そんなことはなさそう。
次にEXEがウイルスとご認識されて、動作をブロックされとるんかなー
と思って確認したけど、そんなこともなく。
うーん、ウイルスバスターはシロか・・・
次。
EXEを疑う。
現象が出るマシンには開発環境がインストールされていないから、ちょっと面倒。
Debug版のEXEとデバッグに必要なファイル(*.ilk)を問題のフォルダにコピーして、
リモートデバッグにてEXEを起動。
CPU使用率が100%になった時点で、強制ブレーク。
・・・。
ん?
SuspendThread関数でサスペンドせずにスレッドが動き続けよーる??
しかも、そこ、サスペンドせんかったら、for文で無限ループする場所じゃし・・・
そりゃぁCPU使用率が100%になるわなぁ。
でも、なんでSuspendThread関数でサスペンドせんのんじゃろ?
Google先生にお伺い。
・・・。
・・・。
SuspendThreadのバグ情報は特に見あたらん。
ますます分からん。
なんでフォルダが違うとSuspendThreadがちゃんと動くんなら?
うーん、迷宮入りの予感。
次。
起動している全てのEXEが読み込みを行っているDLL一覧を表示。
ひょっとして、読みこんどるMFCのDLLがこのマシンだけ特殊?
んーなこたーねーよなー と思いつつ、一覧を表示してみたら。
!!!
CPU使用率が100%になるときは、読みこんどるDLLの数が多い!
なんじゃこのDLL??
まず、acgenral.dllで検索。
・・・トロイの木馬??
まさかー。
全然情報見あたらず。
次。
Aclayers.dll。
『互換モードの機能で ・・・ aclayers.dll の関数に ・・・・』
・・・!!
互換モードか!!
↑互換モードってこれ。(画面はiTuneの例。)
なんなら~~
互換モードでWindows95モードで動きょーるがなー。
チェックONにしたの、誰なら!!
まったく、面倒なことしよってからに。
とりあえず、サポートセンタにマシンを持って行って事情を説明。
『互換モードにするとSuspendThread関数が動かないんですよー
ONにしないでくださいね。
・・・調査費用、高いッスよ。』
善意の押し売りをしてきました。
黒霧島を一升瓶でもらえそうです。(笑)
そんな一日。
日記の意味はわからないが、
方言で漫画の「かばちたれ」を思い出したw
日本語を読んどる気にならんのじゃけど・・・(笑)
みっちゃん、難しい仕事しよるんやね。
えらいわぁ~!
(今実家にいるためにモロ山口弁(笑))
>K+AZUさん
よくわかりましたね!
かばちたれの話の続きなんです。(ウソ)
>うぐいすさん
半分くらいは英語ですよ! たぶん。
そんなに難しい仕事をしてる分けじゃないですよ~
必要に迫られれば、誰でも出来ますから。(苦笑)