[llvm] [win][x64] Updated `llvm-objdump` and `llvm-readobj` to be able to dump Windows x64 Unwind v3 information. (PR #199120)

Daniel Paoliello via llvm-commits llvm-commits at lists.llvm.org
Fri May 22 11:28:04 PDT 2026


================
@@ -0,0 +1,128 @@
+# RUN: yaml2obj %s -o %t.exe
+# RUN: llvm-objdump --unwind-info %t.exe | FileCheck %s
+
+## T13: V3 with EPILOG_PARENT_FRAGMENT_TRANSFER flag set in epilog.
+
+# CHECK-LABEL:  Unwind info:
+# CHECK-EMPTY:
+# CHECK-NEXT:   Function Table:
+# CHECK-NEXT:     Start Address: 0x1000
+# CHECK-NEXT:     End Address: 0x1020
+# CHECK-NEXT:     Unwind Info Address: 0x2000
+# CHECK-NEXT:       Version: 3
+# CHECK-NEXT:       Flags: 0
+# CHECK-NEXT:       Size of prolog: 0xB
+# CHECK-NEXT:       CountOfCodes: 8
+# CHECK-NEXT:       NumberOfOps: 3
+# CHECK-NEXT:       NumberOfEpilogs: 1
+# CHECK-NEXT:       Prolog [3 ops]:
+# CHECK-NEXT:         [0] IP +0x07: WOD_ALLOC_SMALL Size=0x20
+# CHECK-NEXT:         [1] IP +0x02: WOD_PUSH Reg=RSI
+# CHECK-NEXT:         [2] IP +0x00: WOD_PUSH Reg=RDI
+# CHECK-NEXT:       Epilog [0] (Flags=0x01, Offset=+0x14, IpOfLast=+0x6) [3 ops, FirstOp=0x0]:
----------------
dpaoliello wrote:

Added a new `--unwind-show-wod-pool` command line option to display the raw WOD pool.
You could also detect the sharing by comparing the `FirstOp` vs total number of ops displayed so far (but I agree that's annoying).

https://github.com/llvm/llvm-project/pull/199120


More information about the llvm-commits mailing list