> 

I think somebody was being too clever.  The real purpose for specifying the 
format is to set the byte size of the item written down:

    OptionValueUInt64 &byte_size_value = m_format_options.GetByteSizeValue();
    size_t item_byte_size = byte_size_value.GetCurrentValue();

and to do some special magic for c-strings and the like.  Somebody (not me) 
must have thought overloading "hex" format to mean "you can drop the 0x" was a 
tasty little side benefit.

But it's been that way forever, and I don't know who's relying on that 
behavior, so I'd rather not change it (intentionally) if we don't have to.

Jim

> On Wed, Apr 5, 2017 at 3:37 PM Jim Ingham via lldb-dev 
> <lldb-dev@lists.llvm.org> wrote:
> memory write's argument ingestion was changed as part of the StringRefifying 
> of Args so that we get:
> 
> (lldb) memory write &buffer 0x62
> error: '0x62' is not a valid hex string value.
> 
> That seems unexpected and not desirable.  What's going on is that the default 
> format is hex, and if the format is hex, the command also supports:
> 
> (lldb) memory write -f x &buffer 62
> (lldb) fr v/x buffer[0]
> (char) buffer[0] = 0x62
> 
> The StringRef version of the args parsing is:
> 
>       case eFormatDefault:
>       case eFormatBytes:
>       case eFormatHex:
>       case eFormatHexUppercase:
>       case eFormatPointer:
>         // Decode hex bytes
>         if (entry.ref.getAsInteger(16, uval64)) {
> 
> The problem is that passing "0x62" to getAsInteger with a radix of 16 rejects 
> "0x62".
> 
> We do want to hint the radix.  But it seems weird to reject an explicit 
> indicator.  Is there some clever way to use the StringRef functions to get 
> the desired effect, or do I have to hack around this by manually stripping 
> the 0x if I see it?
> 
> Jim
> 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to