我在 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 二进制文件实际上没有任何有用的符号,因此它的实用性是有限的。