[Lldb-commits] [PATCH] D128477: [trace] Add a flag to the decoder to output the instruction type

Sujin Park via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 23 16:16:10 PDT 2022


persona0220 created this revision.
persona0220 added reviewers: wallace, jj10306.
Herald added a project: All.
persona0220 requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

To build complex binding upon instruction trace, additional metadata 'instruction type' is needed.

This diff has followings:

- Add a flag -k  / --kind for instruction dump
- Remove SetGranularity and SetIgnoreErros from Trace cursor

Sample output:

  (lldb) thread trace dump instruction -k
  thread #1: tid = 3198805
    libc.so.6`_IO_puts + 356
      2107: 0x00007ffff7163594 (    return)     retq
      2106: 0x00007ffff7163592 (     other)     popq   %r13
      2105: 0x00007ffff7163590 (     other)     popq   %r12
      2104: 0x00007ffff716358f (     other)     popq   %rbp
      2103: 0x00007ffff716358e (     other)     popq   %rbx
      2102: 0x00007ffff716358c (     other)     movl   %ebx, %eax
      2101: 0x00007ffff7163588 (     other)     addq   $0x8, %rsp
      2100: 0x00007ffff7163570 ( cond jump)     je     0x89588                   ; <+344>
      2099: 0x00007ffff716356e (     other)     decl   (%rdx)
      2098: 0x00007ffff7163565 ( cond jump)     je     0x8956e                   ; <+318>
      2097: 0x00007ffff716355e (     other)     cmpl   $0x0, 0x33c02b(%rip)      ; __libc_multiple_threads
      2096: 0x00007ffff7163556 (     other)     movq   $0x0, 0x8(%rdx)
      2095: 0x00007ffff7163554 ( cond jump)     jne    0x89588                   ; <+344>
      2094: 0x00007ffff7163550 (     other)     subl   $0x1, 0x4(%rdx)
      2093: 0x00007ffff7163549 (     other)     movq   0x88(%rbp), %rdx
      2092: 0x00007ffff7163547 ( cond jump)     jne    0x89588                   ; <+344>
      2091: 0x00007ffff7163540 (     other)     testl  $0x8000, (%rbp)           ; imm = 0x8000
      2090: 0x00007ffff716353c (     other)     cmovaq %rax, %rbx
      2089: 0x00007ffff7163535 (     other)     cmpq   $0x7fffffff, %rbx         ; imm = 0x7FFFFFFF
      2088: 0x00007ffff7163530 (     other)     movl   $0x7fffffff, %eax         ; imm = 0x7FFFFFFF


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D128477

Files:
  lldb/include/lldb/Target/TraceCursor.h
  lldb/include/lldb/Target/TraceInstructionDumper.h
  lldb/include/lldb/lldb-enumerations.h
  lldb/source/Commands/CommandObjectThread.cpp
  lldb/source/Commands/Options.td
  lldb/source/Plugins/Trace/intel-pt/DecodedThread.cpp
  lldb/source/Plugins/Trace/intel-pt/TraceCursorIntelPT.cpp
  lldb/source/Target/TraceCursor.cpp
  lldb/source/Target/TraceInstructionDumper.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D128477.439560.patch
Type: text/x-patch
Size: 12187 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220623/1c9cf575/attachment-0001.bin>


More information about the lldb-commits mailing list