[Lldb-commits] [PATCH] Usability improvements for Intel X86 disassembly (lldb)

Jason Molenda jmolenda at apple.com
Fri Jul 26 16:40:05 PDT 2013


If this patch brings the Intel disassembly style closer to Visual Studio's output, I think it's fine - that's a better benchmark than gdb's Intel disassembly style.  Let's check in with Sean Callanan (who wrote this code originally) before committing anything though.

On Jul 26, 2013, at 4:35 PM, Richard Mitton <richard at codersnotes.com> wrote:

> I set the defaults as 'hex-by-default' and C-style, so it should be fine for most people.
> 
> As for lower case pointers, it's mostly just a matter of style I think. I don't see any reason to special case it compared to everything else. Visual Studio uses lower case too.
> 
> Richard Mitton
> richard at codersnotes.com
> 
> On 07/26/2013 04:27 PM, Jason Molenda wrote:
>> I don't think any of us are using the intel mode of disassembly so it's possible lldb's output style is suboptimal.
>> 
>> I think the use-hex-immediates and hex-immediate-style target settings for disassembly output are fine as long as the default output isn't changing dramatically - I know different people like to customize these settings.
>> 
>> Looking at gdb's output, it seems like register names are lower case but things like "DWORD PTR" are upper case.  This is from a slightly older version of gdb but,
>> 
>> 0x000000010000132c <main+8>:	xorps  xmm0,xmm0
>> 0x000000010000132f <main+11>:	movaps XMMWORD PTR [rbp-0x20],xmm0
>> 0x0000000100001333 <main+15>:	mov    QWORD PTR [rbp-0x10],0x0
>> 0x000000010000133b <main+23>:	mov    DWORD PTR [rbp-0x20],edi
>> 0x000000010000133e <main+26>:	mov    QWORD PTR [rbp-0x18],rsi
>> 0x0000000100001342 <main+30>:	mov    DWORD PTR [rbp-0x10],0x0
>> 0x0000000100001349 <main+37>:	lea    rax,[rip+0x1bbf30]        # 0x1001bd280
>> 
>> where lldb is currently displaying
>> 
>> gdb[0x10000132c]:  xorps  XMM0, XMM0
>> gdb[0x10000132f]:  movaps XMMWORD PTR [RBP - 32], XMM0
>> gdb[0x100001333]:  mov    QWORD PTR [RBP - 16], 0
>> gdb[0x10000133b]:  mov    DWORD PTR [RBP - 32], EDI
>> gdb[0x10000133e]:  mov    QWORD PTR [RBP - 24], RSI
>> gdb[0x100001342]:  mov    DWORD PTR [RBP - 16], 0
>> gdb[0x100001349]:  lea    RAX, QWORD PTR [RIP + 1818416] ; "console"
>> 
>> Are there other Intel style disassemblers that would format these as all lower-case?
>> 
>> 
>> On Jul 26, 2013, at 11:59 AM, Richard Mitton <richard at codersnotes.com> wrote:
>> 
>>> richard.mitton added you to the CC list for the revision "Usability improvements for Intel X86 disassembly (lldb)".
>>> 
>>> This patch adds options for various usability issues when using the Intel X86 disassembler.
>>> 
>>>> NOTE: This requires LLVM to be patched first, see dependencies
>>> The following changes were made to bring Intel syntax in line with AT&T:
>>> - immediate values can be selected to appear as either hex or decimal
>>> - register names and keywords lowercased to be consistent with both att syntax and sanity.
>>> - annotated markup is supported in the disassembly (same as att)
>>> - instruction alias enabled, same as att
>>> 
>>> In addition the following new changes are implemented:
>>> - fixed a bug where MOV16016a would disassembly wrongly for Intel.
>>> - added a switch for the user to select which style of hex constants they would prefer (c/pascal/asm style)
>>> 
>>> 
>>> http://llvm-reviews.chandlerc.com/D1222
>>> 
>>> Files:
>>>  include/lldb/Core/Disassembler.h
>>>  include/lldb/Target/Target.h
>>>  source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
>>>  source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h
>>>  source/Target/Target.cpp
>>> <D1222.1.patch>_______________________________________________
>>> lldb-commits mailing list
>>> lldb-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits




More information about the lldb-commits mailing list