After analyzing a heap dump I found that there were some 30MB strings allocated (single string of 30 MB).  

Is there a way to set a break point while debugging the application so I can find the code which allocates these huge strings?
Since thousands of strings are allocated during application run it isn't possible just putting a break point on each string allocation.
I believe conditional break point will be too slow as well.  

If possible I would want to exam those strings content to understand the origin of these allocation.  

For example they may be a result of a web service call which usually is called with small amount of data but in rare cases with huge input (which are the cases I want to find).