Index: trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingHelper.java	(revision 16097)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingHelper.java	(revision 16100)
@@ -11,4 +11,5 @@
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.io.PrintStream;
 import java.util.Collection;
 import java.util.HashMap;
@@ -19,4 +20,5 @@
 import org.openstreetmap.josm.data.ProjectionBounds;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer;
 import org.openstreetmap.josm.data.projection.Projection;
@@ -24,4 +26,5 @@
 import org.openstreetmap.josm.gui.NavigatableComponent;
 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
+import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
 import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -41,4 +44,5 @@
     private Color backgroundColor;
     private boolean fillBackground = true;
+    private PrintStream debugStream;
 
     /**
@@ -183,6 +187,23 @@
         smr.setStyles(elemStyles);
         smr.render(ds, false, bounds);
+
+        // For debugging, write computed StyleElement to debugStream for primitives marked with debug=yes
+        if (debugStream != null) {
+            for (OsmPrimitive primitive : ds.allPrimitives()) {
+                if (!primitive.isKeyTrue("debug")) {
+                    continue;
+                }
+                debugStream.println(primitive);
+                for (StyleElement styleElement : elemStyles.get(primitive, scale, nc)) {
+                    debugStream.append(" * ").println(styleElement);
+                }
+            }
+        }
+
         return image;
     }
 
+    void setDebugStream(PrintStream debugStream) {
+        this.debugStream = debugStream;
+    }
 }
