<div dir="ltr">That does seem unintentional.  Is there any particular reason we want to hint the radix?  If you're going to specify 0x anyway, then what value does adding the 16 to the getAsInteger add?<div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 5, 2017 at 3:37 PM Jim Ingham via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">memory write's argument ingestion was changed as part of the StringRefifying of Args so that we get:<br>
<br>
(lldb) memory write &buffer 0x62<br>
error: '0x62' is not a valid hex string value.<br>
<br>
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:<br>
<br>
(lldb) memory write -f x &buffer 62<br>
(lldb) fr v/x buffer[0]<br>
(char) buffer[0] = 0x62<br>
<br>
The StringRef version of the args parsing is:<br>
<br>
      case eFormatDefault:<br>
      case eFormatBytes:<br>
      case eFormatHex:<br>
      case eFormatHexUppercase:<br>
      case eFormatPointer:<br>
        // Decode hex bytes<br>
        if (entry.ref.getAsInteger(16, uval64)) {<br>
<br>
The problem is that passing "0x62" to getAsInteger with a radix of 16 rejects "0x62".<br>
<br>
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?<br>
<br>
Jim<br>
<br>
<br>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>