<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/85900>85900</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-dwarfdump segmentation fault in llvm::DWARFUnit::getLoclistOffset(unsigned int)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
molar
</td>
</tr>
</table>
<pre>
Hello
I encountered a crash in ``llvm-dwarfdump`` while investigating why ``llvm-dwp`` produces invalid dwp files.
I have a minimal reproducible example here https://github.com/molar/dwp_merging_repro using llvm 18, i also tried with llvm 16 and it has the same issue.
The crash is
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llvm-dwarfdump-18 --verify main_binary_that_crashes.dwp
#0 0x00007fe6aaeed7d6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0xd937d6)
#1 0x00007fe6aaeeb790 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0xd91790)
#2 0x00007fe6aaeede9b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0xd93e9b)
#3 0x00007fe6a9d2e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fe6ac889b7d llvm::DWARFUnit::getLoclistOffset(unsigned int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x272fb7d)
#5 0x00007fe6ac874334 llvm::DWARFDie::getLocations(llvm::dwarf::Attribute) const (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x271a334)
#6 0x00007fe6ac88c8a2 llvm::DWARFVerifier::verifyDebugInfoAttribute(llvm::DWARFDie const&, llvm::DWARFAttribute&) (/usr/lib/llvm-18/bin/../lib/libLLVM.so
.18.1+0x27328a2)
#7 0x00007fe6ac88bddd llvm::DWARFVerifier::verifyUnitContents(llvm::DWARFUnit&, std::map<unsigned long, std::set<unsigned long, std::less<unsigned long>,
std::allocator<unsigned long>>, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::set<unsigned long, std::less<unsigned long>,
std::allocator<unsigned long>>>>>&, std::map<unsigned long, std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long>>, std::less<u
nsigned long>, std::allocator<std::pair<unsigned long const, std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long>>>>>&) (/usr/l
ib/llvm-18/bin/../lib/libLLVM.so.18.1+0x2731ddd)
#8 0x00007fe6ac88f771 llvm::DWARFVerifier::verifyUnits(llvm::DWARFUnitVector const&) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x2735771)
#9 0x00007fe6ac890c3c llvm::DWARFVerifier::handleDebugInfo() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x2736c3c)
#10 0x00007fe6ac83ead8 llvm::DWARFContext::verify(llvm::raw_ostream&, llvm::DIDumpOptions) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x26e4ad8)
#11 0x0000559f57971c27 (/usr/lib/llvm-18/bin/llvm-dwarfdump+0x17c27)
#12 0x0000559f57975377 (/usr/lib/llvm-18/bin/llvm-dwarfdump+0x1b377)
#13 0x0000559f57971a08 (/usr/lib/llvm-18/bin/llvm-dwarfdump+0x17a08)
#14 0x0000559f57971359 (/usr/lib/llvm-18/bin/llvm-dwarfdump+0x17359)
#15 0x00007fe6a9d15d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#16 0x00007fe6a9d15e40 call_init ./csu/../csu/libc-start.c:128:20
#17 0x00007fe6a9d15e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#18 0x0000559f57964835 (/usr/lib/llvm-18/bin/llvm-dwarfdump+0xa835)
./build.sh: line 23: 471893 Segmentation fault $DWARFDUMP --verify main_binary_that_crashes.dwp
```
I hope that you can also shed some light on why the ``llvm-dwp`` tool does not generate a valid DWP file and help me file another issue on it.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWF1v2zgW_TX0CxGBIvX54IdMXWMKdDDBdKbzaFDitcQtRRokVSf_fkHKdizF282mwe4WRiPz49xz7iUpHnPnZKcB1ij_BeWbFR99b-x6MIrbVWPE0_pXUMpgRDaI3E__f8KgWzNqDxYE5ri13PVYaowKggqi1PfhThy53YtxOExt-NhLBVjq7-C87LiXusPH_mk-5Tz4YI0YW3BhPFdSYHE84L1U4JIzg55_B8zxILUcuMIWpjmyUYDhkQ8HBbgHC7j3_uAQu0d0i-i2k74fm6Q1A6LbKBLRrTgedgPYTupuF4Hw6AK_wAqnFaIfsMRcOYO9lSDwUfr-1FlgrgWWHvfcYd8DdnwALJ0bIblO2Z89nNPkTu1RavjErw-fP95_-Yjd2AzSY46bsQuijPXYmx-JCDxOf-4O1vwDWo_oNjJwiG4nfrpVo4BIcGLR8Pabt7w9s_ziefsNx3qxE2WS4PjvwZrO8gFz240DaB944HmN79IK3919Byv3T3jgUu8aqbl92vme-12MCC4J9Y3IGFFGMHkkhJByDwXnAKIURUQN8dm9e3LTw4OV2kd2fwa6iFbPgyw_7ozzFviAaBHLpD2iNUa0QnQ7ulBcJZtzekIpt43UiG6T5LlLNp8_f_0tcSZJqyRF9BfyKGpWigLR-plwuiDclDW5RfiPUX-RnebqV66FAusimXfhlJY1mXGiyyRC3byLeKibWSB2HagWFHJKToEmnMeq2BXZnZJ6fLzr9Dh1tAG3iKAZzemcfHaN2VZV3ZTiKqGbv-__2P6lpZ--duA_m1ZJ53_f7x14RKtRx6NLvFvVaUn3TSlmLPM5yzJjLFuy3Ei4Jsm9NNrNVmrcKdPjvfdWNqOHQLk12vn3IJ5yxrIZ8WKR3rbidEn8a9ixEuzUNO3fDTRj90nvzRXR6qXgifpp2y26r2YWP1GYScu1SkYrTmcqy4XKRogXi-iWyrCwPhjt43n2Ql9cdpM058XUMfADYh8ua04Z3c36w5r8Ub8C514MYB8R_XBScxnJlQqLyNhbw-OM16Dexrs0Hrh8gX-u6f9E1eXzX8v7z2V80vf_l_c3ZnyxSyd1bzuLWCrE_BCtFrt0X5bpa3fpv9ieX6H1xl6dQu9y_rO8LNMZ9XpOvSYta39MvY_v_csx-l6vf1qyomXthVy4kpA5OQZcVEty8ZR79Ndp_TeXqCuAT5txOPx-OL3Q3kNFARkX1UzF-WaV5_U-L-sybWn5ikgLmxHQ07Kl5QybLrBzVr4Vu2HlHJsteXNSvZU3J_OcZEtslr8m-zexWV7PsPP5ZS7NRU3wbhfuazvnufW7liu1C_d4HKrZuvFcWPfkBByCr9AHr06XvOWkpEfsPq8Qu0-L56jFMipkBMc5Uku_DDQ9BvS7iJ60AY4GUEqeQctboDMpt1TcBGdlHWg_Y1fzEhRZxfK3lYBXLL9UIBBoRqlE4vropKQGTFl4zMq0qhn-Al3wWfEaifd8VH4yYohm0-3rr98e_hO7tXCaFwdtDsERco-fzIhbrieL63oQ2JkBsJJd77HR0acH63jTq3tjFBYGHNbG4w40WO6DNZ-c--bvh-jcow_tQR3wAOcG43uwk1kOYaRP8EqsmahZzVewTsuU1JQQWq369V40vCiaglTFPi-hbfMsrTjJ2qooUmjrlVxTQjPCKCElYyxPsnTftqmoeUbyNC9TlBEYuFRJEJAY261i5HWV14SsFG9AufgrCKUajhMtRCnKNyu7jqKbsXMoI8GEuGcUL72C9bzs2L2sodQ_5W5Wo1Xrt_8OEFX-MwAA__9_1WM8">