diff --git a/include/grpc/support/slice.h b/include/grpc/support/slice.h
index 507cb19f64ba97ec49181bb24c426e9b2f0c4c27..37ba591047275419c9a0da06fb76888cee80a9bd 100644
--- a/include/grpc/support/slice.h
+++ b/include/grpc/support/slice.h
@@ -175,6 +175,10 @@ gpr_slice gpr_empty_slice(void);
 int gpr_slice_cmp(gpr_slice a, gpr_slice b);
 int gpr_slice_str_cmp(gpr_slice a, const char *b);
 
+/* Returns a c-string representation of a slice. Useful for logging or debugging
+   purposes only. The string representation can change in future */
+char *gpr_slice_to_cstring(gpr_slice slice);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/test/core/support/slice_test.c b/test/core/support/slice_test.c
index 9e0e22c24b8896c44567052698f1e9a0727a766b..96070d5bc81217f588f5f5d04febb7013f3949c1 100644
--- a/test/core/support/slice_test.c
+++ b/test/core/support/slice_test.c
@@ -221,6 +221,7 @@ static void test_slice_from_copied_string_works(void) {
   LOG_TEST_NAME("test_slice_from_copied_string_works");
 
   slice = gpr_slice_from_copied_string(text);
+  gpr_log(GPR_INFO, "slice: %s", gpr_slice_to_cstring(slice));
   GPR_ASSERT(strlen(text) == GPR_SLICE_LENGTH(slice));
   GPR_ASSERT(0 ==
              memcmp(text, GPR_SLICE_START_PTR(slice), GPR_SLICE_LENGTH(slice)));