修正されたSteamゲームが実行時にクラッシュし、Steam APIがロードされず、コアダンプを読み取ることができません。

修正されたSteamゲームが実行時にクラッシュし、Steam APIがロードされず、コアダンプを読み取ることができません。

私はArch Linux x86_64にSteamで最新バージョンのEmpire:Total Warを持っています。私はフォローしましたこのレディットガイドDMEをインストールします。すべてのステップ(オプションのステップを除く)が完了しましたが、起動時にゲームは実行されません。


私の仕様は次のとおりです。

$ inxi -SPARM -GCDN -v1 -xGCRS

System:    Host: archlinux Kernel: 4.12.4-1-ARCH x86_64 (64 bit gcc: 7.1.1) Desktop: Gnome 3.24.3 (Gtk 3.22.18)
           Distro: Arch Linux
Machine:   Device: desktop Mobo: ASUSTeK model: P5Q PRO TURBO v: Rev 1.xx BIOS: American Megatrends v: 0701 date: 10/08/2012
CPU:       Quad core Intel Core2 Quad Q6600 (Core 2 rev.11) (-MCP-) cache: 4096 KB
           flags: (lm nx sse sse2 sse3 ssse3 vmx) bmips: 19207
           clock speeds: max: 2403 MHz 1: 2403 MHz 2: 1603 MHz 3: 2136 MHz 4: 1603 MHz
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Juniper XT [Radeon HD 5770] bus-ID: 01:00.0
           Display Server: N/A driver: radeon tty size: 131x87
Audio:     Card-1 Advanced Micro Devices [AMD/ATI] Juniper HDMI Audio [Radeon HD 5700 Series]
           driver: snd_hda_intel bus-ID: 01:00.1
           Card-2 Intel 82801JI (ICH10 Family) HD Audio Controller driver: snd_hda_intel bus-ID: 00:1b.0
           Sound: Advanced Linux Sound Architecture v: k4.12.4-1-ARCH
Network:   Card: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet
           driver: ATL1E port: cc00 bus-ID: 02:00.0
Drives:    HDD Total Size: 1500.3GB (4.3% used)
           ID-1: /dev/sda model: WDC_WD5000AAKS size: 500.1GB
           ID-2: /dev/sdb model: ST1000LM024_HN size: 1000.2GB
Partition: ID-1: / size: 457G used: 60G (14%) fs: ext4 dev: /dev/sda3
           ID-2: /boot size: 202M used: 58M (31%) fs: ext4 dev: /dev/sda1
           ID-3: swap-1 size: 0.54GB used: 0.06GB (11%) fs: swap dev: /dev/sda4
RAID:      No RAID data: /proc/mdstat missing-is md_mod kernel module loaded?
Info:      Processes: 247 Uptime: 1 day Memory: 2934.5/7987.4MB Init: systemd Gcc sys: 7.1.1
           Client: Shell (fish) inxi: 2.3.27 

ターミナルでゲームを実行し、以下を取得します。

$ ./.steam/steam/steamapps/common/Empire\ Total \ War/Empire.sh

~/.local/share/Steam/steamapps/common/Empire Total War/bin/game.i386: error while loading shared libraries: libvorbis.so.0: cannot open shared object file: No such file or directory

明らかに、いくつかの32ビットライブラリが欠落しており、いくつかのpacmanマジックリンクとシンボリックリンクがゲームに必要なライブラリを提供しました。しかし、ゲームを実行すると、次のものが返されます。

$ ./.steam/steam/steamapps/common/Empire Total War/bin/game.i386

Setting breakpad minidump AppID = 10500
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198044159024 [API loaded no]
Dumped crashlog to /home/pradana/.local/share/feral-interactive/Empire/crashes//772c6081-0a79-298b-2c7a8124-23190ade.dmp
fish: “./game.i386” terminated by signal SIGSEGV (Address boundary error)

.dmp以下を使用してファイル(コアダンプ)を読み取ろうとしました。

$ gdb ./game.i386 ~/.local/share/feral-interactive/Empire/crashes/4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp

ただし、エラーが返されます。

"~/.local/share/feral-interactive/Empire/crashes/4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp" is not a core dump: File format not recognized

私は以下を使用してファイルのエンコーディングを見つけようとしました。

$ file --mime 4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp

4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp: application/x-dmp; charset=binary

そして

$ chardetect-py2 4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp

4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp: Windows-1254 with confidence 0.299704567453

私も使った

$ iconv -c -f WINDOWS-1254 -t utf-8 4ab1b7fb-8cb4-b5b2-58c0ddd9-6767d769.dmp > dmp.txt

ログを読んでみましたが、ここでは何も得られません。

コードダンプファイルに何があるのか​​調べなければ進展を遂げられないようです。とにかく、この時点でSteamゲームがクラッシュする理由を見つけようとしています。

答え1

文書コアダンプではありませんが、Steamやサイト運営者が報告した内部競合ファイルのようです。拡張子.dmpスモークニシン

テキストエディタで読むことができます


実行中コアダンプを使用するには、環境で明示的に設定する必要があります。

ulimit -c unlimited

コアダンプはデバッグシンボルなしでは役に立たず、実際のコアダンプでもデバッグシンボルなしでは何も得られません。市販されているソフトウェアがデバッグシンボルを保持する可能性はほとんどありません。


SIGSEGV間違ったメモリアクセスによって引き起こされる分割エラーは非常に広範なエラータイプであり、可能性はほとんど無限です。

答え2

これは、Googleのbreakpadツールセットを使用してGDBで解析できるコアファイルに変換されたWindowsミニダンプ形式です。 Steam バイナリには実際に役に立つシンボルがないため、使いやすさが制限されます。

関連情報