El ejemplo específico que tengo en mente involucra al actual juego alfa Minecraft, pero esta es una pregunta general que creo que merece alguna conversación.
Minecraft está escrito en Java, y los rastros de la pila generalmente se ven así (ejemplo real):
java.lang.NullPointerException
at d.a(SourceFile:247)
at gi.b(SourceFile:92)
at bd.a(SourceFile:33)
at bn.a(SourceFile:69)
at bn.e(SourceFile:115)
at bn.d(SourceFile:103)
at net.minecraft.client.Minecraft.i(SourceFile:1007)
at net.minecraft.client.Minecraft.run(SourceFile:596)
at java.lang.Thread.run(Unknown Source)
Obviamente, estos no son los nombres reales de paquetes y métodos que utiliza el desarrollador cuando escribe. Dado que se encuentra en una etapa alfa, parece que al desarrollador le gustaría poder dar sentido a sus rastros de pila, especialmente si alguien puede proporcionar uno para un informe de error. Tal como está, en su mayoría no tiene sentido.
¿Qué ventaja se podría esperar al ofuscar su código como este que supera los inconvenientes de la identificación de errores más difícil?