aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/Commands/command-disassemble-process.yaml
blob: 931e0b93e3b676f41cbf90e88f5349f66f679289 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# REQUIRES: x86

# RUN: mkdir -p %t.dir
# RUN: yaml2obj --docnum=1 -DMAIN_SIZE=8 %s -o %t.dir/command-disassemble-process.exe
# RUN: yaml2obj --docnum=1 -DMAIN_SIZE=8000 %s -o %t.dir/command-disassemble-process.big.exe
# RUN: yaml2obj --docnum=2 %s -o %t

# RUN: %lldb -c %t %t.dir/command-disassemble-process.exe \
# RUN:   -o "settings set interpreter.stop-command-source-on-error false" \
# RUN:   -s %S/Inputs/command-disassemble-process.lldbinit -o exit \
# RUN:   | FileCheck %s

# RUN: %lldb -c %t %t.dir/command-disassemble-process.big.exe \
# RUN:   -o "settings set stop-disassembly-max-size 8000" \
# RUN:   -o disassemble -o exit 2>&1 | FileCheck %s --check-prefix=BIG

# RUN: %lldb -c %t %t.dir/command-disassemble-process.exe \
# RUN:   -o "settings set interpreter.stop-command-source-on-error false" \
# RUN:   -o "disassemble --address 0xdead" -o exit 2>&1 \
# RUN:   | FileCheck %s --check-prefix=INVALID

# CHECK:       (lldb) disassemble
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT:     0x4002 <+0>: jmp    0x4004 ; <+2>
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT: (lldb) disassemble --line
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT:     0x400a:      addb   %al, (%rdi)
# CHECK-NEXT: (lldb) disassemble --frame
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT:     0x4002 <+0>: jmp    0x4004 ; <+2>
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT: (lldb) disassemble --pc
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT:     0x400a:      addb   %al, (%rdi)
# CHECK-NEXT: (lldb) disassemble --address 0x4004
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT:     0x4002 <+0>: jmp    0x4004 ; <+2>
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT: (lldb) disassemble --count 7
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT:     0x4002 <+0>: jmp    0x4004 ; <+2>
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT:     0x400a:      addb   %al, (%rdi)
# CHECK-NEXT:     0x400c:      addb   %cl, (%rax)
# CHECK-NEXT:     0x400e:      addb   %cl, (%rcx)
# CHECK-NEXT: (lldb) disassemble --pc --count 7
# CHECK-NEXT: command-disassemble-process.exe`main:
# CHECK-NEXT: ->  0x4004 <+2>: addb   %al, (%rdx)
# CHECK-NEXT:     0x4006 <+4>: addb   %al, (%rbx)
# CHECK-NEXT:     0x4008 <+6>: addb   %al, (%rsi)
# CHECK-NEXT:     0x400a:      addb   %al, (%rdi)
# CHECK-NEXT:     0x400c:      addb   %cl, (%rax)
# CHECK-NEXT:     0x400e:      addb   %cl, (%rcx)
# CHECK-NEXT:     0x4010:      addb   %cl, (%rdx)

# INVALID: error: Could not find function bounds for address 0xdead

# BIG: error: Not disassembling the current function because it is very large [0x0000000000004002-0x0000000000005f42). To disassemble specify an instruction count limit, start/stop addresses or use the --force option.

--- !ELF
FileHeader:      
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_X86_64
Sections:        
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x0000000000000000
    AddressAlign:    0x0000000000001000
    Content:         0000EB00000200030006000700080009000A000B000E000F00100011001200130016001700180019001A001B001E001F00200021002200230026002700280029002A002B002E002F
    Size:            0x10000
  - Name:            .note.gnu.build-id
    Type:            SHT_NOTE
    Flags:           [ SHF_ALLOC ]
    Address:         0x0000000000001000
    AddressAlign:    0x0000000000001000
    Content:         040000000800000003000000474E5500DEADBEEFBAADF00D
Symbols:
  - Name:            main
    Type:            STT_FUNC
    Section:         .text
    Value:           0x0000000000000002
    Size:            [[MAIN_SIZE]]
ProgramHeaders:
  - Type: PT_LOAD
    Flags: [ PF_X, PF_R ]
    VAddr: 0x0000
    Align: 0x1000
    FirstSec: .text
    LastSec:  .text
  - Type: PT_LOAD
    Flags: [ PF_W, PF_R ]
    VAddr: 0x1000
    Align: 0x1000
    FirstSec: .note.gnu.build-id
    LastSec: .note.gnu.build-id
...

--- !minidump
Streams:
  - Type:            ModuleList
    Modules:
      - Base of Image:   0x0000000000004000
        Size of Image:   0x00002000
        Module Name:     'command-disassemble-process.yaml'
        CodeView Record: 4C457042DEADBEEFBAADF00D

  - Type:            SystemInfo
    Processor Arch:  AMD64
    Platform ID:     Linux
    CPU:
      Vendor ID:       GenuineIntel
      Version Info:    0x00000000
      Feature Info:    0x00000000
  - Type:            ThreadList
    Threads:         
      - Thread Id:       0x000074F3
        Context:         0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B001000000000006CAE000000006B7FC05A0000C81D415A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A2BF9E5A6B7F0000000000000000000000000000000000008850C14BFD7F00009850C14BFD7F00000100000000000000B04AC14BFD7F0000000000000000000060812D01000000000800000000000000B065E05A6B7F00008004400000000000E050C14BFD7F00000000000000000000000000000000000004400000000000007F03FFFF0000FFFFFFFFFFFF000000000000000000000000801F00006B7F00000400000000000000B84CC14BFD7F0000304D405A6B7F0000C84DC14BFD7F0000C0AA405A6B7F00004F033D0000000000B84DC14BFD7F0000E84DC14BFD7F0000000000000000000000000000000000000070E05A6B7F000078629E5A6B7F0000C81D415A6B7F0000804F9E5A6B7F00000000000001000000E603000001000000E093115A6B7F0000804EC14BFD7F0000584EC14BFD7F000099ADC05A6B7F00000100000000000000AAAAD77D0000000002000000000000000800000000000000B065E05A6B7F0000E6B7C05A6B7F0000010000006B7F0000884DC14BFD7F0000106F7C5A6B7F0000984EC14BFD7F0000488B7C5A6B7F0000C4A71CB90000000001000000000000000800000000000000B065E05A6B7F000048B6C05A6B7F0000702AE25A6B7F0000D84DC14BFD7F000030489E5A6B7F0000E84EC14BFD7F0000E05E9E5A6B7F00000991F0460000000001000000000000000800000000000000B065E05A6B7F000048B6C05A6B7F00000100000000000000284EC14BFD7F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        Stack:           
          Start of Memory Range: 0x00007FFD4BC15080
          Content:         30044000000000000000000000000000
  - Type:            MemoryList
    Memory Ranges:   
      - Start of Memory Range: 0x00007FFD4BC15080
        Content:         30044000000000000000000000000000
...