VMware起動時に「致命的なアプリケーション エラーです:・・・」

新たなマシンにVMWareを入れる機械があったのですが、仮想マシンを立ち上げるたびに、

致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)。

なんて出て来て、かつググってもこのケースに適切な解法がなかったので書き書き。
真っ先に気がつくべき事実に気がつかず、無駄に苦労してしまった。。。(計12時間)
また、この記事を書いた時点では、「致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)。」に関してググっても2007年10月に修正されたバグの話しか見当たらなかったため、この記事を書いてみた。

問題点

仮想マシンを立ち上げて少しすると、「致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)。」とエラーウィンドウが出力され、[ OK ]ボタンを押すとVMware仮想マシンとともに強制終了される。
(このときVMwareのプロセス(タスク?)が残っているので、タスクマネージャで強制的に終了しておいたほうがいいかもしれない。)
(また、このエラーウィンド、自分のケースでは無視していても仮想マシンは正常に動いていた。なのでエラーウィンドが気にならない人は以下を読まないくてもいいかもしれない。)

解法

問題のxmvファイルと同じフォルダに移動。.log のファイルがあるはずなので、テキストエディタで開きましょう。一通り目を通すと、どこかに文字化けしている箇所があるはずです。僕のケースでは、、

Dec 09 22:28:56.435: vcpu-0| BUSLOGIC: Store HAL[18] = 0xfe01
Dec 09 22:28:57.433: vmx| VMXVmdbLoadUsbDevices: New set of 2 USB devices
Dec 09 22:28:57.433: vmx| USB: Found device [name:USBデバイス147e:2016 vid:147e pid:2016 path:1/0/0 speed:full family:vendor]
Dec 09 22:28:57.433: vmx| USB: Found device [name:Ricoh\ USB繝・ヰ繧、繧ケ vid:05ca pid:183a path:1/2/1 speed:high family:other]
Dec 09 22:29:01.007: vcpu-0| BUSLOGIC: Store HAL[16] = 0xffff
Dec 09 22:29:01.007: vcpu-0| BUSLOGIC: Store HAL[18] = 0xfe01
Dec 09 22:29:01.007: vcpu-0| BUSLOGIC: Store HAL[16] = 0xffff

こんな感じ。
USBデバイスが二つ認識されたは良いけど、一方が文字化けしてしまっています。なので、vmxファイルを弄ってUSBデバイスを読み込まないように変更します。このケースでは、vmxファイルの一部は。。。

ethernet0.connectionType = "nat"
usb.present = "TRUE"
sound.present = "TRUE"

となっていたので、usb.presentの値を書き換えます

ethernet0.connectionType = "nat"
usb.present = "FALSE"
sound.present = "TRUE"

これで解決。

つまり、「致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)。」とでてきたら、ログファイルを見ろということ。。。。当然な話にまとまってしまう。