dw2-undefined-ret-addr.S 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. /*
  2. Copyright 2013-2022 Free Software Foundation, Inc.
  3. This program is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  13. /* The FDE entry for "stop_frame" in the .debug_frame section has
  14. been hand modified to mark the return address (rip) as undefined.
  15. Otherwise this file is as generated by gcc 4.7.2 for x86_64. */
  16. .file "dw2-undefined-ret-addr.c"
  17. .text
  18. .Ltext0:
  19. .globl stop_frame
  20. .type stop_frame, @function
  21. stop_frame:
  22. .LFB0:
  23. .file 1 "dw2-undefined-ret-addr.c"
  24. .loc 1 19 0
  25. pushq %rbp
  26. .LCFI0:
  27. movq %rsp, %rbp
  28. .LCFI1:
  29. .loc 1 22 0
  30. popq %rbp
  31. .LCFI2:
  32. ret
  33. .LFE0:
  34. .size stop_frame, .-stop_frame
  35. .globl first_frame
  36. .type first_frame, @function
  37. first_frame:
  38. .LFB1:
  39. .loc 1 26 0
  40. pushq %rbp
  41. .LCFI3:
  42. movq %rsp, %rbp
  43. .LCFI4:
  44. .loc 1 27 0
  45. movl $0, %eax
  46. call stop_frame
  47. .loc 1 28 0
  48. popq %rbp
  49. .LCFI5:
  50. ret
  51. .LFE1:
  52. .size first_frame, .-first_frame
  53. .globl main
  54. .type main, @function
  55. main:
  56. .LFB2:
  57. .loc 1 32 0
  58. pushq %rbp
  59. .LCFI6:
  60. movq %rsp, %rbp
  61. .LCFI7:
  62. .loc 1 33 0
  63. movl $0, %eax
  64. call first_frame
  65. .loc 1 35 0
  66. movl $0, %eax
  67. .loc 1 36 0
  68. popq %rbp
  69. .LCFI8:
  70. ret
  71. .LFE2:
  72. .size main, .-main
  73. .section .debug_frame,"",@progbits
  74. .Lframe0:
  75. .long .LECIE0-.LSCIE0
  76. .LSCIE0:
  77. .long 0xffffffff
  78. .byte 0x1
  79. .string ""
  80. .uleb128 0x1
  81. .sleb128 -8
  82. .byte 0x10
  83. .byte 0xc
  84. .uleb128 0x7
  85. .uleb128 0x8
  86. .byte 0x90
  87. .uleb128 0x1
  88. .align 8
  89. .LECIE0:
  90. /* This FDE entry, for stop_frame was modified to mark
  91. registers 0 -> 6 as being undefined. */
  92. .LSFDE0:
  93. .long .LEFDE0-.LASFDE0
  94. .LASFDE0:
  95. .long .Lframe0
  96. .quad .LFB0
  97. .quad .LFE0-.LFB0
  98. /* START OF NEW CONTENT. */
  99. .byte 0x7 /* DW_CFA_undefined */
  100. .uleb128 0x10 /* ULEB128 register */
  101. /* END OF NEW CONTENT. */
  102. .byte 0x4
  103. .long .LCFI0-.LFB0
  104. .byte 0xe
  105. .uleb128 0x10
  106. .byte 0x86
  107. .uleb128 0x2
  108. .byte 0x4
  109. .long .LCFI1-.LCFI0
  110. .byte 0xd
  111. .uleb128 0x6
  112. .byte 0x4
  113. .long .LCFI2-.LCFI1
  114. .byte 0xc
  115. .uleb128 0x7
  116. .uleb128 0x8
  117. .align 8
  118. .LEFDE0:
  119. .LSFDE2:
  120. .long .LEFDE2-.LASFDE2
  121. .LASFDE2:
  122. .long .Lframe0
  123. .quad .LFB1
  124. .quad .LFE1-.LFB1
  125. .byte 0x4
  126. .long .LCFI3-.LFB1
  127. .byte 0xe
  128. .uleb128 0x10
  129. .byte 0x86
  130. .uleb128 0x2
  131. .byte 0x4
  132. .long .LCFI4-.LCFI3
  133. .byte 0xd
  134. .uleb128 0x6
  135. .byte 0x4
  136. .long .LCFI5-.LCFI4
  137. .byte 0xc
  138. .uleb128 0x7
  139. .uleb128 0x8
  140. .align 8
  141. .LEFDE2:
  142. .LSFDE4:
  143. .long .LEFDE4-.LASFDE4
  144. .LASFDE4:
  145. .long .Lframe0
  146. .quad .LFB2
  147. .quad .LFE2-.LFB2
  148. .byte 0x4
  149. .long .LCFI6-.LFB2
  150. .byte 0xe
  151. .uleb128 0x10
  152. .byte 0x86
  153. .uleb128 0x2
  154. .byte 0x4
  155. .long .LCFI7-.LCFI6
  156. .byte 0xd
  157. .uleb128 0x6
  158. .byte 0x4
  159. .long .LCFI8-.LCFI7
  160. .byte 0xc
  161. .uleb128 0x7
  162. .uleb128 0x8
  163. .align 8
  164. .LEFDE4:
  165. .section .eh_frame,"a",@progbits
  166. .Lframe1:
  167. .long .LECIE1-.LSCIE1
  168. .LSCIE1:
  169. .long 0
  170. .byte 0x1
  171. .string "zR"
  172. .uleb128 0x1
  173. .sleb128 -8
  174. .byte 0x10
  175. .uleb128 0x1
  176. .byte 0x3
  177. .byte 0xc
  178. .uleb128 0x7
  179. .uleb128 0x8
  180. .byte 0x90
  181. .uleb128 0x1
  182. .align 8
  183. .LECIE1:
  184. .LSFDE7:
  185. .long .LEFDE7-.LASFDE7
  186. .LASFDE7:
  187. .long .LASFDE7-.Lframe1
  188. .long .LFB0
  189. .long .LFE0-.LFB0
  190. .uleb128 0
  191. .byte 0x4
  192. .long .LCFI0-.LFB0
  193. .byte 0xe
  194. .uleb128 0x10
  195. .byte 0x86
  196. .uleb128 0x2
  197. .byte 0x4
  198. .long .LCFI1-.LCFI0
  199. .byte 0xd
  200. .uleb128 0x6
  201. .byte 0x4
  202. .long .LCFI2-.LCFI1
  203. .byte 0xc
  204. .uleb128 0x7
  205. .uleb128 0x8
  206. .align 8
  207. .LEFDE7:
  208. .LSFDE9:
  209. .long .LEFDE9-.LASFDE9
  210. .LASFDE9:
  211. .long .LASFDE9-.Lframe1
  212. .long .LFB1
  213. .long .LFE1-.LFB1
  214. .uleb128 0
  215. .byte 0x4
  216. .long .LCFI3-.LFB1
  217. .byte 0xe
  218. .uleb128 0x10
  219. .byte 0x86
  220. .uleb128 0x2
  221. .byte 0x4
  222. .long .LCFI4-.LCFI3
  223. .byte 0xd
  224. .uleb128 0x6
  225. .byte 0x4
  226. .long .LCFI5-.LCFI4
  227. .byte 0xc
  228. .uleb128 0x7
  229. .uleb128 0x8
  230. .align 8
  231. .LEFDE9:
  232. .LSFDE11:
  233. .long .LEFDE11-.LASFDE11
  234. .LASFDE11:
  235. .long .LASFDE11-.Lframe1
  236. .long .LFB2
  237. .long .LFE2-.LFB2
  238. .uleb128 0
  239. .byte 0x4
  240. .long .LCFI6-.LFB2
  241. .byte 0xe
  242. .uleb128 0x10
  243. .byte 0x86
  244. .uleb128 0x2
  245. .byte 0x4
  246. .long .LCFI7-.LCFI6
  247. .byte 0xd
  248. .uleb128 0x6
  249. .byte 0x4
  250. .long .LCFI8-.LCFI7
  251. .byte 0xc
  252. .uleb128 0x7
  253. .uleb128 0x8
  254. .align 8
  255. .LEFDE11:
  256. .text
  257. .Letext0:
  258. .section .debug_info,"",@progbits
  259. .Ldebug_info0:
  260. .long 0x8c
  261. .value 0x2
  262. .long .Ldebug_abbrev0
  263. .byte 0x8
  264. .uleb128 0x1
  265. .long .LASF2
  266. .byte 0x1
  267. .long .LASF3
  268. .long .LASF4
  269. .quad .Ltext0
  270. .quad .Letext0
  271. .long .Ldebug_line0
  272. .uleb128 0x2
  273. .byte 0x1
  274. .long .LASF0
  275. .byte 0x1
  276. .byte 0x12
  277. .quad .LFB0
  278. .quad .LFE0
  279. .long .LLST0
  280. .byte 0x1
  281. .uleb128 0x3
  282. .byte 0x1
  283. .long .LASF1
  284. .byte 0x1
  285. .byte 0x19
  286. .quad .LFB1
  287. .quad .LFE1
  288. .long .LLST1
  289. .byte 0x1
  290. .uleb128 0x4
  291. .byte 0x1
  292. .long .LASF5
  293. .byte 0x1
  294. .byte 0x1f
  295. .long 0x88
  296. .quad .LFB2
  297. .quad .LFE2
  298. .long .LLST2
  299. .byte 0x1
  300. .uleb128 0x5
  301. .byte 0x4
  302. .byte 0x5
  303. .string "int"
  304. .byte 0
  305. .section .debug_abbrev,"",@progbits
  306. .Ldebug_abbrev0:
  307. .uleb128 0x1
  308. .uleb128 0x11
  309. .byte 0x1
  310. .uleb128 0x25
  311. .uleb128 0xe
  312. .uleb128 0x13
  313. .uleb128 0xb
  314. .uleb128 0x3
  315. .uleb128 0xe
  316. .uleb128 0x1b
  317. .uleb128 0xe
  318. .uleb128 0x11
  319. .uleb128 0x1
  320. .uleb128 0x12
  321. .uleb128 0x1
  322. .uleb128 0x10
  323. .uleb128 0x6
  324. .byte 0
  325. .byte 0
  326. .uleb128 0x2
  327. .uleb128 0x2e
  328. .byte 0
  329. .uleb128 0x3f
  330. .uleb128 0xc
  331. .uleb128 0x3
  332. .uleb128 0xe
  333. .uleb128 0x3a
  334. .uleb128 0xb
  335. .uleb128 0x3b
  336. .uleb128 0xb
  337. .uleb128 0x11
  338. .uleb128 0x1
  339. .uleb128 0x12
  340. .uleb128 0x1
  341. .uleb128 0x40
  342. .uleb128 0x6
  343. .uleb128 0x2117
  344. .uleb128 0xc
  345. .byte 0
  346. .byte 0
  347. .uleb128 0x3
  348. .uleb128 0x2e
  349. .byte 0
  350. .uleb128 0x3f
  351. .uleb128 0xc
  352. .uleb128 0x3
  353. .uleb128 0xe
  354. .uleb128 0x3a
  355. .uleb128 0xb
  356. .uleb128 0x3b
  357. .uleb128 0xb
  358. .uleb128 0x11
  359. .uleb128 0x1
  360. .uleb128 0x12
  361. .uleb128 0x1
  362. .uleb128 0x40
  363. .uleb128 0x6
  364. .uleb128 0x2116
  365. .uleb128 0xc
  366. .byte 0
  367. .byte 0
  368. .uleb128 0x4
  369. .uleb128 0x2e
  370. .byte 0
  371. .uleb128 0x3f
  372. .uleb128 0xc
  373. .uleb128 0x3
  374. .uleb128 0xe
  375. .uleb128 0x3a
  376. .uleb128 0xb
  377. .uleb128 0x3b
  378. .uleb128 0xb
  379. .uleb128 0x49
  380. .uleb128 0x13
  381. .uleb128 0x11
  382. .uleb128 0x1
  383. .uleb128 0x12
  384. .uleb128 0x1
  385. .uleb128 0x40
  386. .uleb128 0x6
  387. .uleb128 0x2116
  388. .uleb128 0xc
  389. .byte 0
  390. .byte 0
  391. .uleb128 0x5
  392. .uleb128 0x24
  393. .byte 0
  394. .uleb128 0xb
  395. .uleb128 0xb
  396. .uleb128 0x3e
  397. .uleb128 0xb
  398. .uleb128 0x3
  399. .uleb128 0x8
  400. .byte 0
  401. .byte 0
  402. .byte 0
  403. .section .debug_loc,"",@progbits
  404. .Ldebug_loc0:
  405. .LLST0:
  406. .quad .LFB0-.Ltext0
  407. .quad .LCFI0-.Ltext0
  408. .value 0x2
  409. .byte 0x77
  410. .sleb128 8
  411. .quad .LCFI0-.Ltext0
  412. .quad .LCFI1-.Ltext0
  413. .value 0x2
  414. .byte 0x77
  415. .sleb128 16
  416. .quad .LCFI1-.Ltext0
  417. .quad .LCFI2-.Ltext0
  418. .value 0x2
  419. .byte 0x76
  420. .sleb128 16
  421. .quad .LCFI2-.Ltext0
  422. .quad .LFE0-.Ltext0
  423. .value 0x2
  424. .byte 0x77
  425. .sleb128 8
  426. .quad 0
  427. .quad 0
  428. .LLST1:
  429. .quad .LFB1-.Ltext0
  430. .quad .LCFI3-.Ltext0
  431. .value 0x2
  432. .byte 0x77
  433. .sleb128 8
  434. .quad .LCFI3-.Ltext0
  435. .quad .LCFI4-.Ltext0
  436. .value 0x2
  437. .byte 0x77
  438. .sleb128 16
  439. .quad .LCFI4-.Ltext0
  440. .quad .LCFI5-.Ltext0
  441. .value 0x2
  442. .byte 0x76
  443. .sleb128 16
  444. .quad .LCFI5-.Ltext0
  445. .quad .LFE1-.Ltext0
  446. .value 0x2
  447. .byte 0x77
  448. .sleb128 8
  449. .quad 0
  450. .quad 0
  451. .LLST2:
  452. .quad .LFB2-.Ltext0
  453. .quad .LCFI6-.Ltext0
  454. .value 0x2
  455. .byte 0x77
  456. .sleb128 8
  457. .quad .LCFI6-.Ltext0
  458. .quad .LCFI7-.Ltext0
  459. .value 0x2
  460. .byte 0x77
  461. .sleb128 16
  462. .quad .LCFI7-.Ltext0
  463. .quad .LCFI8-.Ltext0
  464. .value 0x2
  465. .byte 0x76
  466. .sleb128 16
  467. .quad .LCFI8-.Ltext0
  468. .quad .LFE2-.Ltext0
  469. .value 0x2
  470. .byte 0x77
  471. .sleb128 8
  472. .quad 0
  473. .quad 0
  474. .section .debug_aranges,"",@progbits
  475. .long 0x2c
  476. .value 0x2
  477. .long .Ldebug_info0
  478. .byte 0x8
  479. .byte 0
  480. .value 0
  481. .value 0
  482. .quad .Ltext0
  483. .quad .Letext0-.Ltext0
  484. .quad 0
  485. .quad 0
  486. .section .debug_line,"",@progbits
  487. .Ldebug_line0:
  488. .section .debug_str,"MS",@progbits,1
  489. .LASF0:
  490. .string "stop_frame"
  491. .LASF3:
  492. .string "dw2-undefined-ret-addr.c"
  493. .LASF2:
  494. .string "GNU C 4.7.2"
  495. .LASF1:
  496. .string "first_frame"
  497. .LASF5:
  498. .string "main"
  499. .LASF4:
  500. .string "/home/username/src/gdb/testsuite/gdb.dwarf2"
  501. .ident "GCC: (GNU) 4.7.2"
  502. .section .note.GNU-stack,"",@progbits