<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58322>58322</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-pdbutil crash 0xC0000005
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ldelabre
</td>
</tr>
</table>
<pre>
Hi,
I need for a personal project to read PDB file and extract from it all informations about its typedef : for all struct or union : name, type, offset, size of each fields.
After some search, I found and tried llvm-pdbutil (v15.0.2 for x86_64-pc-windows-msvc), but it does fails when parsing the PDB (generated by VStudio 2022 in debug mode for x64); here the backtrace :
Stack dump:
0. Program arguments: llvm-pdbutil -all XXX.pdb
Exception Code: 0xC0000005
#0 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0xdca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0xe0bc5
#1 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0xe772a C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0xe47f7
#2 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x764ef C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x70324
#3 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x7687e C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x76650
#4 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x704aa C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x75d42
#5 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x70129 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x734d9
#6 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x732d4 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x6f63b
#7 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x89210 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x860a4
#8 0x00007ff62675ca22 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x45b63 C:\Program Files\LLVM\bin\llvm-pdbutil.exe 0x3a5240
#9 0x00007ff62675ca22 (C:\Program Files\LLVM\bin\llvm-pdbutil.exe+0xdca22)
#10 0x00007ff626760bc5 (C:\Program Files\LLVM\bin\llvm-pdbutil.exe+0xe0bc5)
0x00007FF62675CA22, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0xDCA22 byte(s)
0x00007FF626760BC5, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0xE0BC5 byte(s)
0x00007FF62676772A, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0xE772A byte(s)
0x00007FF6267647F7, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0xE47F7 byte(s)
0x00007FF6266F64EF, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x764EF byte(s)
0x00007FF6266F0324, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x70324 byte(s)
0x00007FF6266F687E, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x7687E byte(s)
0x00007FF6266F6650, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x76650 byte(s)
0x00007FF6266F04AA, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x704AA byte(s)
0x00007FF6266F5D42, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x75D42 byte(s)
0x00007FF6266F0129, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x70129 byte(s)
0x00007FF6266F34D9, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x734D9 byte(s)
0x00007FF6266F32D4, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x732D4 byte(s)
0x00007FF6266EF63B, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x6F63B byte(s)
0x00007FF626709210, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x89210 byte(s)
0x00007FF6267060A4, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x860A4 byte(s)
0x00007FF6266C5B63, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x45B63 byte(s)
0x00007FF626A25240, C:\Program Files\LLVM\bin\llvm-pdbutil.exe(0x00007FF626680000) + 0x3A5240 byte(s)
0x00007FFD2CB17034, C:\WINDOWS\System32\KERNEL32.DLL(0x00007FFD2CB00000) + 0x17034 byte(s), BaseThreadInitThunk() + 0x14 byte(s)
0x00007FFD2CCE26A1, C:\WINDOWS\SYSTEM32\ntdll.dll(0x00007FFD2CC90000) + 0x526A1 byte(s), RtlUserThreadStart() + 0x21 byte(s)
Is the backtrace enough or do you need the PDB itself ?
Sincerely,
Ludovic.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1WNuO4jgQ_ZrwYhElzo088AABtK1lZkdD70zv08qJK8Q7uSDb6W7267ecdA_Q2-pIDEGC2LHrnFMVx2Uqbfhx_puwaGI5K8tZ3JEagJO8kYSRA0jV1KwkB9n8A5kmuiESGCdfVkuSixIIqzmBZy0ZDuayqYjQhJUlETUiVEyLplaEpU2rcUQRfTwAh5xY3qKnwKlKyxatsdfWOL0bq1kFKKmbb65NnivQpqXEv4BdAiwrUAKUXNm98v53kWuQRDUVEAVMZoUxukOyFpUatVoK9K8sH6vpgaetFiWx6OzRDWzHpp2o51n4d-hPD9n0SdS8eVLTSj1mFo0NVNp5QngDiuRMlIo8FVCTA5NK1HuiC-iCg5B7qEEyjWTpkXzb6ZaLhlCHUgwO4ZC2e1I1HHrK0Df43pIUIKFDSVn2w8QVTEDOPdxpHCG8rQ4_BxwMQfxFNnvJKsLkvq2g1soE8sLPqQn3w8ODjTd6w_VzBgfzkEiCUoyB85w43SfoZ6AnnoN3za0oz0MaRkHG0InEsAfJK-sGV4PC_nb77RNeUlHj7zm7Dc-AOPxXjMFJszNd7g11QRRRdrWxH-XRSRe9oa4o9PF9udbY8ah_0uXdVNcsguuNw8A56fJvqcvx2dXPMQq4T0-6gpvqcml8tbHn8_ikK7ylLo9y_1rjMA-99KQruqGuWUxd52rj0GFn6352Q11-kIbetcYeC6h_tvDj94Rh6rgG3qLLl93VZJI-X-AW-WbvDs0O-ksU_R78SvECvtl0-pOFYU-uCg9qOgcLZ6aNPCh2iT6sDDZmUm0mqvf5Q2eZBCPxrw32ED_mkMVY_AZ7iN-PNtFY_Ab7Y_5wE_rrzUj8kcEe4u_S3Uj8BnvQ_1m0Hs1_xB7kN2l1LH7EHoy_vxhr_UcGe4g_WPlj7T-RwR703-3_JIzivzk_DPB7_mo0foM9yE9Xo71_BnuAf70JveVI_KHBHth_HXNmGYm_Pw8N8IfOYqz4zwz2QPyTYBl6I_H7Bvtj_gXtTlfj8HsLA_6BgBVNli5mifMH8P3u8-qP7zts7Y5KQ-VRbP6-_vp5vfWovdpuz0kNgHNJ2uFdcCL2kim4L0wZ5q4W-r5o6x84emb00WNCkmSNoXLfV_nX7n79qVNZa16WNn7fSEziS4mBAXsr8asu_1Qge5U7zaS-UEjd_yt8qT6pN7UPqJt2X5jiEG_IsWn76tRrlUVoBaWpJm0uCiSizkBCefxZ1Nq2vHkUmT2BuYt5LIiDgMYTPvd47MVsooUuYX5RKskkU8VZMWTSynJeaH0wVRWL4ilnsxe6aFM7ayrsGOOXy_SlWIZdoVSLK49ugplH6aSYR5EXB27MnJmL6TQPfDfFvwTAYtfP0sDzJyVLoVRzK8B9jNbwRDoIbFvBaiLmpnzkYiZwI1zrsZ26CBy6uQOMxjTilu9AxXA9Gx12I_cT2buVtnuFg6VQWp0GmVJijwHt6BCftbpo0IIDypAw6bjnnfb_ADwowrI">