brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.2 KiB · 14f416d Raw
262 lines · plain
1# REQUIRES: x862 3# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o %t4# RUN: %lldb %t -o "settings set interpreter.stop-command-source-on-error false" \5# RUN:   -o "settings set stop-disassembly-max-size 8000" \6# RUN:   -s %S/Inputs/command-disassemble.lldbinit -o exit 2>&1 | FileCheck %s7 8# CHECK:      (lldb) disassemble9# CHECK-NEXT: error: Cannot disassemble around the current function without a selected frame: no currently running process.10# CHECK-NEXT: (lldb) disassemble --line11# CHECK-NEXT: error: Cannot disassemble around the current line without a selected frame: no currently running process.12# CHECK-NEXT: (lldb) disassemble --frame13# CHECK-NEXT: error: Cannot disassemble around the current function without a selected frame: no currently running process.14# CHECK-NEXT: (lldb) disassemble --pc15# CHECK-NEXT: error: Cannot disassemble around the current PC without a selected frame: no currently running process.16# CHECK-NEXT: (lldb) disassemble --start-address 0x017# CHECK-NEXT: command-disassemble.s.tmp`foo:18# CHECK-NEXT: command-disassemble.s.tmp[0x0] <+0>:   jmp    0x2 ; <+2>19# CHECK-NEXT: command-disassemble.s.tmp[0x2] <+2>:   int    $0x1120# CHECK-NEXT: command-disassemble.s.tmp[0x4] <+4>:   int    $0x1221# CHECK-NEXT: command-disassemble.s.tmp[0x6] <+6>:   int    $0x1322# CHECK-NEXT: command-disassemble.s.tmp[0x8] <+8>:   int    $0x1423# CHECK-NEXT: command-disassemble.s.tmp[0xa] <+10>:  int    $0x1524# CHECK-NEXT: command-disassemble.s.tmp[0xc] <+12>:  int    $0x1625# CHECK-EMPTY:26# CHECK-NEXT: command-disassemble.s.tmp`bar:27# CHECK-NEXT: command-disassemble.s.tmp[0xe] <+0>:   int    $0x1728# CHECK-NEXT: command-disassemble.s.tmp[0x10] <+2>:  int    $0x1829# CHECK-NEXT: command-disassemble.s.tmp[0x12] <+4>:  int    $0x1930# CHECK-NEXT: command-disassemble.s.tmp[0x14] <+6>:  int    $0x1a31# CHECK-NEXT: command-disassemble.s.tmp[0x16] <+8>:  int    $0x1b32# CHECK-NEXT: command-disassemble.s.tmp[0x18] <+10>: int    $0x1c33# CHECK-NEXT: command-disassemble.s.tmp[0x1a] <+12>: int    $0x1d34# CHECK-NEXT: command-disassemble.s.tmp[0x1c] <+14>: int    $0x1e35# CHECK-NEXT: command-disassemble.s.tmp[0x1e] <+16>: int    $0x1f36# CHECK-NEXT: (lldb) disassemble --start-address 0x4 --end-address 0x837# CHECK-NEXT: command-disassemble.s.tmp`foo:38# CHECK-NEXT: command-disassemble.s.tmp[0x4] <+4>: int    $0x1239# CHECK-NEXT: command-disassemble.s.tmp[0x6] <+6>: int    $0x1340# CHECK-NEXT: (lldb) disassemble --start-address 0x8 --end-address 0x441# CHECK-NEXT: error: End address before start address.42# CHECK-NEXT: (lldb) disassemble --address 0x043# CHECK-NEXT: command-disassemble.s.tmp`foo:44# CHECK-NEXT: command-disassemble.s.tmp[0x0] <+0>:  jmp    0x2 ; <+2>45# CHECK-NEXT: command-disassemble.s.tmp[0x2] <+2>:  int    $0x1146# CHECK-NEXT: command-disassemble.s.tmp[0x4] <+4>:  int    $0x1247# CHECK-NEXT: command-disassemble.s.tmp[0x6] <+6>:  int    $0x1348# CHECK-NEXT: command-disassemble.s.tmp[0x8] <+8>:  int    $0x1449# CHECK-NEXT: command-disassemble.s.tmp[0xa] <+10>: int    $0x1550# CHECK-NEXT: command-disassemble.s.tmp[0xc] <+12>: int    $0x1651# CHECK-NEXT: (lldb) disassemble --address 0xdeadb52# CHECK-NEXT: error: Could not find function bounds for address 0xdeadb53# CHECK-NEXT: (lldb) disassemble --address 0x10054# CHECK-NEXT: error: Not disassembling the function because it is very large [0x0000000000000040-0x0000000000002040). To disassemble specify an instruction count limit, start/stop addresses or use the --force option.55# CHECK-NEXT: (lldb) disassemble --address 0x100 --count 356# CHECK-NEXT: command-disassemble.s.tmp`very_long:57# CHECK-NEXT: command-disassemble.s.tmp[0x40] <+0>: int    $0x2a58# CHECK-NEXT: command-disassemble.s.tmp[0x42] <+2>: int    $0x2a59# CHECK-NEXT: command-disassemble.s.tmp[0x44] <+4>: int    $0x2a60# CHECK-NEXT: (lldb) disassemble --address 0x100 --force61# CHECK-NEXT: command-disassemble.s.tmp`very_long:62# CHECK-NEXT: command-disassemble.s.tmp[0x40]   <+0>:    int    $0x2a63# CHECK:      command-disassemble.s.tmp[0x203e] <+8190>: int    $0x2a64# CHECK-NEXT: (lldb) disassemble --start-address 0x0 --count 765# CHECK-NEXT: command-disassemble.s.tmp`foo:66# CHECK-NEXT: command-disassemble.s.tmp[0x0] <+0>:  jmp    0x2 ; <+2>67# CHECK-NEXT: command-disassemble.s.tmp[0x2] <+2>:  int    $0x1168# CHECK-NEXT: command-disassemble.s.tmp[0x4] <+4>:  int    $0x1269# CHECK-NEXT: command-disassemble.s.tmp[0x6] <+6>:  int    $0x1370# CHECK-NEXT: command-disassemble.s.tmp[0x8] <+8>:  int    $0x1471# CHECK-NEXT: command-disassemble.s.tmp[0xa] <+10>: int    $0x1572# CHECK-NEXT: command-disassemble.s.tmp[0xc] <+12>: int    $0x1673# CHECK-NEXT: (lldb) disassemble --start-address 0x0 --end-address 0x20 --count 774# CHECK-NEXT: error: invalid combination of options for the given command75# CHECK-NEXT: (lldb) disassemble --name case176# CHECK-NEXT: command-disassemble.s.tmp`n1::case1:77# CHECK-NEXT: command-disassemble.s.tmp[0x2040] <+0>: int    $0x3078# CHECK-EMPTY:79# CHECK-NEXT: command-disassemble.s.tmp`n2::case1:80# CHECK-NEXT: command-disassemble.s.tmp[0x2042] <+0>: int    $0x3181# CHECK-EMPTY:82# CHECK-NEXT: (lldb) disassemble --name case283# CHECK-NEXT: command-disassemble.s.tmp`n1::case2:84# CHECK-NEXT: command-disassemble.s.tmp[0x2044] <+0>: int    $0x3285# CHECK-NEXT: warning: Not disassembling a function because it is very large [0x0000000000002046-0x0000000000004046). To disassemble specify an instruction count limit, start/stop addresses or use the --force option.86# CHECK-NEXT: (lldb) disassemble --name case387# CHECK-NEXT: error: Not disassembling a function because it is very large [0x0000000000006046-0x0000000000007046)[0x0000000000009046-0x000000000000a050). To disassemble specify an instruction count limit, start/stop addresses or use the --force option.88# CHECK-NEXT: Not disassembling a function because it is very large [0x0000000000004046-0x0000000000006046). To disassemble specify an instruction count limit, start/stop addresses or use the --force option.89# CHECK-NEXT: (lldb) disassemble --name case3 --count 390# CHECK-NEXT: command-disassemble.s.tmp`n2::case3:91# CHECK-NEXT: command-disassemble.s.tmp[0x6046] <-12288>: int    $0x2a92# CHECK-NEXT: command-disassemble.s.tmp[0x6048] <-12286>: int    $0x2a93# CHECK-NEXT: command-disassemble.s.tmp[0x604a] <-12284>: int    $0x2a94# CHECK-EMPTY:95# CHECK-NEXT: command-disassemble.s.tmp`n2::case3:96# CHECK-NEXT: command-disassemble.s.tmp[0x9046] <+0>: jmp 0x6046 ; <-12288>97# CHECK-NEXT: command-disassemble.s.tmp[0x904b] <+5>: jmp 0x7046 ; middle_of_case398# CHECK-NEXT: command-disassemble.s.tmp[0x9050] <+10>: int    $0x2a99# CHECK-EMPTY:100# CHECK-NEXT: command-disassemble.s.tmp`n1::case3:101# CHECK-NEXT: command-disassemble.s.tmp[0x4046] <+0>: int    $0x2a102# CHECK-NEXT: command-disassemble.s.tmp[0x4048] <+2>: int    $0x2a103# CHECK-NEXT: command-disassemble.s.tmp[0x404a] <+4>: int    $0x2a104# CHECK-EMPTY:105 106 107        .text108foo:109        jmp 1f1101:      int $0x11111        int $0x12112        int $0x13113        int $0x14114        int $0x15115        int $0x16116bar:117        int $0x17118        int $0x18119        int $0x19120        int $0x1a121        int $0x1b122        int $0x1c123        int $0x1d124        int $0x1e125        int $0x1f126        int $0x20127        int $0x21128        int $0x22129        int $0x23130        int $0x24131        int $0x25132        int $0x26133        int $0x27134        int $0x28135        int $0x29136        int $0x2a137        int $0x2b138        int $0x2c139        int $0x2d140        int $0x2e141        int $0x2f142 143very_long:144        .rept 0x1000145        int $42146        .endr147 148_ZN2n15case1Ev:149        int $0x30150 151_ZN2n25case1Ev:152        int $0x31153 154_ZN2n15case2Ev:155        int $0x32156 157_ZN2n25case2Ev:158        .rept 0x1000159        int $42160        .endr161 162_ZN2n15case3Ev:163        .rept 0x1000164        int $42165        .endr166        .size _ZN2n15case3Ev, .-_ZN2n15case3Ev167 168.L_ZN2n25case3Ev.__part.1:169        .rept 0x800170        int $42171        .endr172.L_ZN2n25case3Ev.__part.1_end:173 174middle_of_case3:175        .rept 0x1000176        int $42177        .endr178 179_ZN2n25case3Ev:180        jmp .L_ZN2n25case3Ev.__part.1181        jmp middle_of_case3182        .rept 0x800183        int $42184        .endr185.L_ZN2n25case3Ev_end:186 187        .section        .debug_abbrev,"",@progbits188        .byte   1                               # Abbreviation Code189        .byte   17                              # DW_TAG_compile_unit190        .byte   1                               # DW_CHILDREN_yes191        .byte   37                              # DW_AT_producer192        .byte   8                               # DW_FORM_string193        .byte   19                              # DW_AT_language194        .byte   5                               # DW_FORM_data2195        .byte   17                              # DW_AT_low_pc196        .byte   1                               # DW_FORM_addr197        .byte   85                              # DW_AT_ranges198        .byte   23                              # DW_FORM_sec_offset199        .byte   0                               # EOM(1)200        .byte   0                               # EOM(2)201        .byte   2                               # Abbreviation Code202        .byte   57                              # DW_TAG_namespace203        .byte   1                               # DW_CHILDREN_yes204        .byte   3                               # DW_AT_name205        .byte   8                               # DW_FORM_string206        .byte   0                               # EOM(1)207        .byte   0                               # EOM(2)208        .byte   3                               # Abbreviation Code209        .byte   46                              # DW_TAG_subprogram210        .byte   0                               # DW_CHILDREN_no211        .byte   85                              # DW_AT_ranges212        .byte   23                              # DW_FORM_sec_offset213        .byte   3                               # DW_AT_name214        .byte   8                               # DW_FORM_string215        .byte   110                             # DW_AT_linkage_name216        .byte   8                               # DW_FORM_string217        .byte   0                               # EOM(1)218        .byte   0                               # EOM(2)219        .byte   0                               # EOM(3)220 221        .section        .debug_info,"",@progbits222.Lcu_begin0:223        .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit224.Ldebug_info_start0:225        .short  5                               # DWARF version number226        .byte   1                               # DWARF Unit Type227        .byte   8                               # Address Size (in bytes)228        .long   .debug_abbrev                   # Offset Into Abbrev. Section229        .byte   1                               # Abbrev DW_TAG_compile_unit230        .asciz  "Hand-written DWARF"            # DW_AT_producer231        .short  29                              # DW_AT_language232        .quad   0                               # DW_AT_low_pc233        .long   .Ldebug_ranges0                 # DW_AT_ranges234        .byte   2                               # Abbrev DW_TAG_namespace235        .asciz  "n2"                            # DW_AT_name236        .byte   3                               # Abbrev DW_TAG_subprogram237        .long   .Ldebug_ranges0                 # DW_AT_ranges238        .asciz  "case3"                         # DW_AT_name239        .asciz  "_ZN2n25case3Ev"                # DW_AT_linkage_name240        .byte   0                               # End Of Children Mark241        .byte   0                               # End Of Children Mark242.Ldebug_info_end0:243 244        .section        .debug_rnglists,"",@progbits245        .long   .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length246.Ldebug_list_header_start0:247        .short  5                               # Version248        .byte   8                               # Address size249        .byte   0                               # Segment selector size250        .long   2                               # Offset entry count251.Lrnglists_table_base0:252        .long   .Ldebug_ranges0-.Lrnglists_table_base0253.Ldebug_ranges0:254        .byte   6                               # DW_RLE_start_end255        .quad _ZN2n25case3Ev256        .quad .L_ZN2n25case3Ev_end257        .byte   6                               # DW_RLE_start_end258        .quad .L_ZN2n25case3Ev.__part.1259        .quad .L_ZN2n25case3Ev.__part.1_end260        .byte   0                               # DW_RLE_end_of_list261.Ldebug_list_header_end0:262