Перейти к содержимому
Mineforgian

StackDeobfuscator

Remaps logged stacktraces to readable mappings

Загрузки
5.6M
Подписчики
200
Обновлён
7 июля 2024 г.
Лицензия
LGPL-3.0-only

Опубликован 20 марта 2023 г.

Stack Deobfuscator

WARNING
This mod is obsolete for all Minecraft versions newer than 1.21.11. It will still be maintained for older versions.

Discord: https://discord.gg/XSB7jn9
Web Version: https://stackdeobf.net/

See wiki for configuration

What does this mod do?

All errors displayed in the console and all crash reports will be remapped from unreadable production names (e.g. net.minecraft.class_310) to readable mapped names (e.g. net.minecraft.client.MinecraftClient).

This allows mod developers to more easily identify issues in a non-development environment, as the errors are instantly human-readable.

Comparison

Before
[23:13:08] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.class_148: Manually triggered debug crash
         at net.minecraft.class_309.method_1474(class_309.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1574(class_310.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1523(class_310.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.class_310.method_1514(class_310.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.class_309.method_1474(class_309.java:506) ~[client-intermediary.jar:?]
         ... 10 more
After (yarn/quilt mappings)
[23:11:25] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.util.crash.CrashException: Manually triggered debug crash
         at net.minecraft.client.Keyboard.pollDebugCrash(Keyboard.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.tick(MinecraftClient.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.client.Keyboard.pollDebugCrash(Keyboard.java:506) ~[client-intermediary.jar:?]
         ... 10 more
After (mojang mappings)
[23:04:12] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.ReportedException: Manually triggered debug crash
         at net.minecraft.client.KeyboardHandler.tick(KeyboardHandler.java:509) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.tick(Minecraft.java:1955) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.runTick(Minecraft.java:1180) ~[client-intermediary.jar:?]
         at net.minecraft.client.Minecraft.run(Minecraft.java:801) ~[client-intermediary.jar:?]
         at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
         at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.18.jar:?]
         at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.18.jar:?]
         at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
         at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.Throwable: Manually triggered debug crash
         at net.minecraft.client.KeyboardHandler.tick(KeyboardHandler.java:506) ~[client-intermediary.jar:?]
         ... 10 more

Mappings Overview

Mappings are downloaded and parsed asynchronously. They are downloaded only once per version. Yarn and Quilt refresh their version every 48 hours to check for updates.

Mappings Compatible Minecraft Versions Download Size (zipped¹)² Cached Size (gzipped)²
Yarn 18w49a (1.14 snapshot) or higher 1.4 MiB 1.4 MiB
Quilt 1.18.2 or higher 1.4 MiB (+1.1 MiB below 1.19.2) 1.4 MiB (+1.1 MiB below 1.19.2)
Mojang 1.14.4 and 19w36a (1.15 snapshot) or higher 9.0 MiB (uncompressed) + 559.1 KiB 1.3 MiB + 558.6 KiB

¹: Mojang mappings are not compressed
²: Sizes as of 12th May 2024 (1.20.6 is latest)

Ченджлог

1.4.3Релиз1.21.11-rc2, 1.21.11-rc3, 1.21.11 · 7 июля 2024 г.
  • Add more version data to web viewer (1.20.4-rc1 to 1.21)
  • Don't verify checksums for yarn maven metadata at all (#10)
    • This can't be reliably checked, as fabric's maven cache returns outdated files for a while after an update
  • Improve styling of web viewer
  • Update library to prevent issues with other mods updating mapping-io library

Full Changelog: https://github.com/booky10/StackDeobfuscator/compare/v1.4.2...v1.4.3

1.4.2Релиз1.21.11-rc2, 1.21.11-rc3, 1.21.11 · 5 декабря 2023 г.
  • Add more version data to web viewer (versions 23w33a to 1.20.3)
  • Use sha256 instead of sha512 checksums for yarn (works around sha512 checksum being wrong sometimes)
  • Fix mixin refmap filename looking weird
  • Add static mappings getter to fabric mod class

Full Changelog: https://github.com/booky10/StackDeobfuscator/compare/v1.4.1...v1.4.2

1.4.1Релиз1.21.11-rc2, 1.21.11-rc3, 1.21.11 · 12 августа 2023 г.
  • Add 23w31a and 23w32a version data to web viewer
  • Select latest stable version by default in web viewer
  • Correctly set mixin refmap name (resolves crash when Noxesium is installed)
1.4.0Релиз1.20.1, 23w31a, 23w32a · 31 июля 2023 г.

Fixes

  • Handle / being used instead of . as package separator
    • E.g. net/minecraft/class_5272 is now remapped correctly to net/minecraft/client/item/ModelPredicateProviderRegistry
  • Fix some classes causing errors when trying to remap (Fixes #7)

New

  • Separate fabric integration and common remapping code
    • Adds web subproject for remapping text to different mappings/versions
  • The checksum of all files is now verified on download
    • Intermediary/Quilt mappings always use sha512
    • Mojang mappings always use md5/sha1
    • Yarn uses sha512 on modern version, but falls back to sha1 for 19w02a, Combat Test 4 and all versions older than 1.15 (except 1.14.4)
  • Some fixes to support more versions
  • Mapping/Metadata downloads will be retried 3x before being cancelled, if:
    • The server returns a non 2xx response code
    • Checksum verification fails
1.3.2Релиз1.20.1, 23w31a, 23w32a · 14 апреля 2023 г.
  • Fix exceptions when remapping lambda methods
  • Added optional remapping of every log message
  • Rewrote internal log injection handling
    • Now uses Log4j's exception rendering
    • Removed "MC//" prefix in stacktrace, minecraft classes are now suffixed with "~[client-intermediary.jar:?]"
1.3.1Релиз1.20, 1.20.1-rc1, 1.20.1 · 30 марта 2023 г.
  • Added support for quilt mappings below 1.19.2
    • Now goes down to 1.18.2
1.3.0Релиз1.19.4, 23w12a, 23w13a · 30 марта 2023 г.
  • Mappings are now loaded asynchronously, removing startup time impact
  • Added more log messages (e.g. time tracking and detailed http requests)
  • Added support for more minecraft versions
    • Yarn: 18w49a (1.14 snapshot) or higher
    • Quilt: 1.19.2 or higher
    • Mojang: 1.14.4 and 19w36a (1.15 snapshot) or higher
  • Yarn/Quilt versions are now cached for 48 hours before being refreshed
  • Added note in stacktraces when something has been remapped (MC// prefix before classname)
  • Custom mappings now support the in-jar format used by intermediary, yarn and quilt
    • They also support GZIP (without TAR) and normal ZIP (just one file in a zip) compression
      → Auto-detected by file name extension
  • All cached mappings (yarn, quilt, intermediary and mojang) are now saved GZIP compressed
1.2.1Релиз1.19.4, 23w12a · 24 марта 2023 г.
  • Fixed some issues with remapping of inner classes
  • Added support for quilt mappings

Note: Even though quilt mappings are supported, quilt loader is currently unsupported.

Комментарии

Загружаем…