pcpair-incomplete.test 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. # Test that incomplete entries for pcpair are ignored.
  2. # There are several kinds of incomplete entries:
  3. # - contains low_pc or high_pc, but not both.
  4. # - low_pc is not a valid dwarf address (0 or max)
  5. # RUN: %yaml2obj %s --docnum=1 -o %t.obj
  6. # RUN: %yaml2obj %s --docnum=2 -o %t.dwo
  7. # RUN: %bloaty %t.obj --debug-file %t.dwo -d compileunits --raw-map --domain=vm | %FileCheck %s
  8. --- !ELF
  9. FileHeader:
  10. Class: ELFCLASS64
  11. Data: ELFDATA2LSB
  12. Type: ET_DYN
  13. Machine: EM_X86_64
  14. Entry: 0x1040
  15. ProgramHeaders:
  16. - Type: PT_LOAD
  17. Flags: [ PF_X, PF_R ]
  18. FirstSec: .text
  19. LastSec: .text
  20. VAddr: 0x1000
  21. Align: 0x1000
  22. Sections:
  23. - Name: .note.gnu.build-id
  24. Type: SHT_NOTE
  25. Notes:
  26. - Name: GNU
  27. Desc: 6CF422D909772A0FB5400518A689D9F15F14BF57
  28. Type: 0x3 # NT_GNU_BUILD_ID
  29. - Name: .text
  30. Type: SHT_PROGBITS
  31. Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
  32. Address: 0x1000
  33. AddressAlign: 0x10
  34. Size: 0x20
  35. ...
  36. --- !ELF
  37. FileHeader:
  38. Class: ELFCLASS64
  39. Data: ELFDATA2LSB
  40. Type: ET_DYN
  41. Machine: EM_X86_64
  42. Entry: 0x1040
  43. Sections:
  44. - Name: .note.gnu.build-id
  45. Type: SHT_NOTE
  46. Notes:
  47. - Name: GNU
  48. Desc: 6CF422D909772A0FB5400518A689D9F15F14BF57
  49. Type: 0x3 # NT_GNU_BUILD_ID
  50. DWARF:
  51. debug_str:
  52. - foo.c
  53. - bar.c
  54. debug_abbrev:
  55. - ID: 0
  56. Table:
  57. - Code: 0x1
  58. Tag: DW_TAG_compile_unit
  59. Children: DW_CHILDREN_yes
  60. Attributes:
  61. - Attribute: DW_AT_name
  62. Form: DW_FORM_strp
  63. - Code: 0x2
  64. Tag: DW_TAG_subprogram
  65. Children: DW_CHILDREN_no
  66. Attributes:
  67. - Attribute: DW_AT_low_pc
  68. Form: DW_FORM_addr
  69. - Attribute: DW_AT_high_pc
  70. Form: DW_FORM_data4
  71. # Incomplete: low_pc but no high_pc
  72. - Code: 0x3
  73. Tag: DW_TAG_subprogram
  74. Children: DW_CHILDREN_no
  75. Attributes:
  76. - Attribute: DW_AT_low_pc
  77. Form: DW_FORM_addr
  78. # Incomplete: high_pc but no low_pc
  79. - Code: 0x4
  80. Tag: DW_TAG_subprogram
  81. Children: DW_CHILDREN_no
  82. Attributes:
  83. - Attribute: DW_AT_high_pc
  84. Form: DW_FORM_data4
  85. debug_info:
  86. # 0x0000000b: DW_TAG_compile_unit
  87. # DW_AT_name [DW_FORM_strp] ("foo.c")
  88. #
  89. # 0x00000010: DW_TAG_subprogram
  90. # DW_AT_low_pc [DW_FORM_addr] (0x0000000000001000)
  91. #
  92. # 0x00000019: DW_TAG_subprogram
  93. # DW_AT_high_pc [DW_FORM_data4] (0x00000010)
  94. #
  95. # 0x0000001e: DW_TAG_subprogram
  96. # DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
  97. # DW_AT_high_pc [DW_FORM_data4] (0x00000020)
  98. #
  99. # 0x0000002b: DW_TAG_subprogram
  100. # DW_AT_low_pc [DW_FORM_addr] (0xffffffffffffffff)
  101. # DW_AT_high_pc [DW_FORM_data4] (0x00000020)
  102. #
  103. # 0x00000038: DW_TAG_subprogram
  104. # DW_AT_low_pc [DW_FORM_addr] (0x0000000000001010)
  105. # DW_AT_high_pc [DW_FORM_data4] (0x00000010)
  106. - Version: 4
  107. AbbrevTableID: 0
  108. AbbrOffset: 0x0
  109. AddrSize: 8
  110. Entries:
  111. - AbbrCode: 0x1
  112. Values:
  113. - Value: 0x0
  114. - AbbrCode: 0x3
  115. Values:
  116. - Value: 0x1000
  117. - AbbrCode: 0x4
  118. Values:
  119. - Value: 0x10
  120. - AbbrCode: 0x2
  121. Values:
  122. - Value: 0x0 # Incomplete, 0 address
  123. - Value: 0x20
  124. - AbbrCode: 0x2
  125. Values:
  126. - Value: 0xffffffffffffffff # Incomplete, max address
  127. - Value: 0x20
  128. - AbbrCode: 0x2
  129. Values:
  130. - Value: 0x1010
  131. - Value: 0x10
  132. - AbbrCode: 0x0
  133. # 0x00000051: DW_TAG_compile_unit
  134. # DW_AT_name [DW_FORM_strp] ("bar.c")
  135. #
  136. # 0x00000056: DW_TAG_subprogram
  137. # DW_AT_low_pc [DW_FORM_addr] (0x0000000000001000)
  138. # DW_AT_high_pc [DW_FORM_data4] (0x00000010)
  139. - Version: 4
  140. AbbrevTableID: 0
  141. AbbrOffset: 0x0
  142. AddrSize: 8
  143. Entries:
  144. - AbbrCode: 0x1
  145. Values:
  146. - Value: 0x6
  147. - AbbrCode: 0x2
  148. Values:
  149. - Value: 0x1000
  150. - Value: 0x10
  151. - AbbrCode: 0x0
  152. ...
  153. # CHECK: VM MAP:
  154. # CHECK: 0000-1000 4096 [-- Nothing mapped --]
  155. # CHECK: 1000-1010 16 bar.c
  156. # CHECK: 1010-1020 16 foo.c