[google gcc-4_7, integration] Scribble on destructed strings to catch invalid accesses.

Chris Jefferson chris@bubblescope.net
Thu Jan 24 19:40:00 GMT 2013


On 24/01/13 19:03, Marc Glisse wrote:
> On Wed, 23 Jan 2013, Paul Pluzhnikov wrote:
>
>> This patch allows us to catch use of destructed strings.
>
> Hello,
>
> while a number of the google debug patches are just cheaper versions 
> (that don't break the ABI) of what libstdc++'s debug mode provides, 
> this overwriting of classes on destruction is not as obviously 
> redundant, and I wonder whether something like it (done consistently 
> for many classes) could go to trunk...

A possibly crazy suggestion.. How hard would it be to add this 
automatically to all calls to destructors? (via a command line flag 
obviously)

Chris

>
>> Google ref: b/5430313
>>
>> Ok for google/gcc-4_7 and google/integration?
>>
>> -- 
>> Paul Pluzhnikov
>>
>>
>>
>> Index: libstdc++-v3/include/ext/sso_string_base.h
>> ===================================================================
>> --- libstdc++-v3/include/ext/sso_string_base.h    (revision 195417)
>> +++ libstdc++-v3/include/ext/sso_string_base.h    (working copy)
>> @@ -215,7 +215,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>>               const _Alloc& __a);
>>
>>       ~__sso_string_base()
>> -      { _M_dispose(); }
>> +      {
>> +          _M_dispose();
>> +#ifdef __google_stl_debug_dangling_string
>> +          __builtin_memset(this, 0xcd, sizeof(*this));
>> +#endif
>> +      }
>>
>>       _CharT_alloc_type&
>>       _M_get_allocator()
>



More information about the Libstdc++ mailing list