Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingHelper.java	(revision 16099)
+++ /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;
+    }
 }
Index: /trunk/test/data/renderer/node-text2/data.osm
===================================================================
--- /trunk/test/data/renderer/node-text2/data.osm	(revision 16099)
+++ /trunk/test/data/renderer/node-text2/data.osm	(revision 16100)
@@ -5,4 +5,5 @@
     <tag k='name' v='Hgmpf' />
     <tag k='test' v='text-placement' />
+    <tag k='debug' v='yes' />
   </node>
 </osm>
Index: /trunk/test/data/renderer/way-text/data.osm
===================================================================
--- /trunk/test/data/renderer/way-text/data.osm	(revision 16099)
+++ /trunk/test/data/renderer/way-text/data.osm	(revision 16100)
@@ -44,4 +44,5 @@
     <tag k='name' v='An der Actien-Zuckerfabrik' />
     <tag k='test' v='w1' />
+    <tag k='debug' v='yes' />
   </way>
   <way id='-41280' action='modify'>
Index: /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java	(revision 16099)
+++ /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java	(revision 16100)
@@ -192,4 +192,6 @@
         RenderingHelper rh = new RenderingHelper(dataSet, testConfig.getTestArea(), scale, Collections.singleton(sd));
         rh.setFillBackground(false);
+        rh.setDebugStream(System.out);
+        System.out.println("Running " + getClass() + "[" + testConfig.testDirectory + "]");
         BufferedImage image = rh.render();
 
