修改后的 Steam 游戏在启动时崩溃,Steam API 无法加载,无法读取核心转储

修改后的 Steam 游戏在启动时崩溃,Steam API 无法加载,无法读取核心转储

我在 Arch Linux x86_64 上有最新版本的 Steam 帝国:全面战争。我已关注这个 Reddit 指南安装 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

它是 Windows 小型转储格式;使用Google的breakpad工具集转换为可以被GDB解析的核心文件。 Steam 二进制文件实际上没有任何有用的符号,因此它的实用性是有限的。

相关内容