diff --git a/rs.spec b/rs.spec
index be988e7..a4e72d9 100644
--- a/rs.spec
+++ b/rs.spec
@@ -42,6 +42,10 @@
 	param void *sur
 	}
 
+ContextDump {
+	param int32_t bits
+}
+
 ContextSetPriority {
 	param int32_t priority
 	}
diff --git a/rsAllocation.cpp b/rsAllocation.cpp
index 16029a6..408d83f 100644
--- a/rsAllocation.cpp
+++ b/rsAllocation.cpp
@@ -190,6 +190,24 @@
 {
 }
 
+void Allocation::dumpLOGV(const char *prefix) const
+{
+    ObjectBase::dumpLOGV(prefix);
+
+    String8 s(prefix);
+    s.append(" type ");
+    if (mType.get()) {
+        mType->dumpLOGV(s.string());
+    }
+
+    LOGV("%s allocation ptr=%p mCpuWrite=%i, mCpuRead=%i, mGpuWrite=%i, mGpuRead=%i",
+          prefix, mPtr, mCpuWrite, mCpuRead, mGpuWrite, mGpuRead);
+
+    LOGV("%s allocation mIsTexture=%i mIsTextureID=%i, mIsVertexBuffer=%i, mBufferID=%i",
+          prefix, mIsTexture, mTextureID, mIsVertexBuffer, mBufferID);
+
+
+}
 
 
 /////////////////
diff --git a/rsAllocation.h b/rsAllocation.h
index 1b83267..514b1c2 100644
--- a/rsAllocation.h
+++ b/rsAllocation.h
@@ -65,6 +65,8 @@
     void enableGLVertexBuffers() const;
     void setupGLIndexBuffers() const;
 
+    virtual void dumpLOGV(const char *prefix) const;
+
 
 protected:
     ObjectBaseRef<const Type> mType;
diff --git a/rsContext.cpp b/rsContext.cpp
index deb9592..08ed725 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -819,6 +819,11 @@
     rsc->setPriority(p);
 }
 
+void rsi_ContextDump(Context *rsc, int32_t bits)
+{
+    ObjectBase::dumpAll(rsc);
+}
+
 }
 }
 
diff --git a/rsObjectBase.cpp b/rsObjectBase.cpp
index b7d67cc..05791cb 100644
--- a/rsObjectBase.cpp
+++ b/rsObjectBase.cpp
@@ -190,3 +190,15 @@
     }
 }
 
+void ObjectBase::dumpAll(Context *rsc)
+{
+    if (rsc->props.mLogObjects) {
+        LOGV("Dumping all objects");
+        const ObjectBase * o = rsc->mObjHead;
+        while (o) {
+            o->dumpLOGV("  ");
+            o = o->mNext;
+        }
+    }
+}
+
diff --git a/rsObjectBase.h b/rsObjectBase.h
index dc85ac7..f247022 100644
--- a/rsObjectBase.h
+++ b/rsObjectBase.h
@@ -49,6 +49,7 @@
     void setContext(Context *);
 
     static void zeroAllUserRef(Context *rsc);
+    static void dumpAll(Context *rsc);
 
     virtual void dumpLOGV(const char *prefix) const;
 
