diff --git a/lib/memory_profiler/reporter.rb b/lib/memory_profiler/reporter.rb
index <HASH>..<HASH> 100644
--- a/lib/memory_profiler/reporter.rb
+++ b/lib/memory_profiler/reporter.rb
@@ -97,7 +97,7 @@ module MemoryProfiler
         klass      = obj.class
         class_name = helper.lookup_class_name(klass)
         gem        = helper.guess_gem(file)
-        string     = obj.dup if klass == String
+        string     = '' << obj  if klass == String
 
         begin
           object_id = obj.__id__
fix retained String issue caused by copying object with allocation tracing
copying the String with .clone, .dup, String.new, or interpolation all seems to copy the allocation tracing info.