From 48b888aab9fdcfba250722dffbdffe61f11c64f3 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 19 Jan 2011 16:15:53 -0800 Subject: improve SurfaceFlinger 'dumpsys' log list the purgatory, which shows windows that have been closed, but for which the client still has references. Change-Id: I5168bb88cb328d5d77d71d0871deb9190f493126 --- services/surfaceflinger/SurfaceFlinger.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 65ad9568b3..434e473d74 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1491,8 +1491,13 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) result.append(buffer); } + /* + * Dump the visible layer list + */ const LayerVector& currentLayers = mCurrentState.layersSortedByZ; const size_t count = currentLayers.size(); + snprintf(buffer, SIZE, "Visible layers (count = %d)\n", count); + result.append(buffer); for (size_t i=0 ; i& layer(currentLayers[i]); layer->dump(result, buffer, SIZE); @@ -1502,6 +1507,24 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) layer->visibleRegionScreen.dump(result, "visibleRegionScreen"); } + /* + * Dump the layers in the purgatory + */ + + const size_t purgatorySize = mLayerPurgatory.size(); + snprintf(buffer, SIZE, "Purgatory state (%d entries)\n", purgatorySize); + result.append(buffer); + for (size_t i=0 ; i& layer(mLayerPurgatory.itemAt(i)); + layer->shortDump(result, buffer, SIZE); + } + + /* + * Dump SurfaceFlinger global state + */ + + snprintf(buffer, SIZE, "SurfaceFlinger global state\n"); + result.append(buffer); mWormholeRegion.dump(result, "WormholeRegion"); const DisplayHardware& hw(graphicPlane(0).displayHardware()); snprintf(buffer, SIZE, @@ -1527,6 +1550,9 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) result.append(buffer); } + /* + * Dump HWComposer state + */ HWComposer& hwc(hw.getHwComposer()); snprintf(buffer, SIZE, " h/w composer %s and %s\n", hwc.initCheck()==NO_ERROR ? "present" : "not present", @@ -1534,6 +1560,9 @@ status_t SurfaceFlinger::dump(int fd, const Vector& args) result.append(buffer); hwc.dump(result, buffer, SIZE); + /* + * Dump gralloc state + */ const GraphicBufferAllocator& alloc(GraphicBufferAllocator::get()); alloc.dump(result); hw.dump(result); -- cgit v1.2.3-59-g8ed1b