<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120310>120310</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LLDB] Crash when using `frame variable` command and there is instance of a class with shared_ptr inside of it
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TheRealCringengineer
</td>
</tr>
</table>
<pre>
LLDB is crashing when im trying to execute `frame variable` command and there is instance of a class that contains shared_ptr inside of it
Platform: Windows 11 23H2
Compiler that used to build executable: MSVC v19.41
What version of lldb were tested:
lldb v19.0 (installed from visual studio installer)
lldb v20.0 (builded from sources on 17 of december 2024)
Minimal code to reproduce bug
```cpp
#include <iostream>
class Test
{
public:
Test(std::shared_ptr<int> v)
: value(v)
{}
std::shared_ptr<int> GetValue() { return value; }
private:
std::shared_ptr<int> value;
};
int main()
{
std::unique_ptr<int> test = std::make_unique<int>(25);
std::cout << "Test " << *test << std::endl;
Test t(std::make_shared<int>(42));
std::cout << "Test2 " << *t.GetValue() << std::endl;
}
```
Actions to reproduce this bug
1) Build executable
2) Attach lldb to it with `lldb app.exe`
3) Set breakpoint on main
4) run program to hit the breakpoint
5) execute command `frame variable`
6) expect crash
Stacktrace generated by lldb v20.0 builded from sources
```
Exception Code: 0xC0000005
#0 0x00007ff953a9d065 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x29d065)
#1 0x00007ff953d8ad4e lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x58ad4e)
#2 0x00007ff953c87964 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x487964)
#3 0x00007ff953ab3e4b lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b3e4b)
#4 0x00007ff953ab44ec lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b44ec)
#5 0x00007ff953ab583a lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b583a)
#6 0x00007ff953ab3b09 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b3b09)
#7 0x00007ff953ab3fba lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b3fba)
#8 0x00007ff953ab44ec lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b44ec)
#9 0x00007ff953ab583a lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2b583a)
#10 0x00007ff953c77308 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x477308)
#11 0x00007ff955cb80cb lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x24b80cb)
#12 0x00007ff953ae0aee lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2e0aee)
#13 0x00007ff953aed662 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2ed662)
#14 0x00007ff953aef829 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2ef829)
#15 0x00007ff953a90f60 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x290f60)
#16 0x00007ff953a488b9 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2488b9)
#17 0x00007ff953afa519 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x2fa519)
#18 0x00007ff953930a74 lldb::SBDebugger::RunCommandInterpreter(bool, bool) (W:\llvm-project\Release\bin\liblldb.dll+0x130a74)
#19 0x00007ff6003d5083 (W:\llvm-project\Release\bin\lldb.exe+0x5083)
#20 0x00007ff6003d921f (W:\llvm-project\Release\bin\lldb.exe+0x921f)
#21 0x00007ff6003fd4ec (W:\llvm-project\Release\bin\lldb.exe+0x2d4ec)
#22 0x00007ffa6c42259d (C:\WINDOWS\System32\KERNEL32.DLL+0x1259d)
#23 0x00007ffa6d34af38 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x5af38)
```
Stacktrace generated by lldb v19.0.0 (from visual studio installer)
```
Exception Code: 0xC0000005
#0 0x00007ff9a4b2547c lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x50547c)
#1 0x00007ff9a486b95a lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x24b95a)
#2 0x00007ff9a4881a0b lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x261a0b)
#3 0x00007ff9a48820a7 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x2620a7)
#4 0x00007ff9a4883362 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x263362)
#5 0x00007ff9a488179e lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x26179e)
#6 0x00007ff9a4881b85 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x261b85)
#7 0x00007ff9a48820a7 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x2620a7)
#8 0x00007ff9a4883362 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x263362)
#9 0x00007ff9a484e3a6 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x22e3a6)
#10 0x00007ff9a67d898f lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x21b898f)
#11 0x00007ff9a48b8dce lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x298dce)
#12 0x00007ff9a48c6a05 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x2a6a05)
#13 0x00007ff9a48c849b lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x2a849b)
#14 0x00007ff9a4861d72 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x241d72)
#15 0x00007ff9a480bed9 lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x1ebed9)
#16 0x00007ff9a48d2b1c lldb::SBUnixSignals::SetShouldSuppress(int, bool) (W:\binary\liblldb.dll+0x2b2b1c)
#17 0x00007ff9a471445a lldb::SBDebugger::RunCommandInterpreter(bool, bool) (W:\binary\liblldb.dll+0xf445a)
#18 0x00007ff6eb084568 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe 0x4568 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe 0x52a9
#19 0x00007ff6eb084568 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe 0x2adb4 (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe+0x4568)
#20 0x00007ff6eb084568
#21 0x00007ff6eb084568 (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe+0x4568)
0x00007FF9A4B2547C, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x50547C byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x3538EC byte(s)
0x00007FF9A486B95A, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x24B95A byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x99DCA byte(s)
0x00007FF9A4881A0B, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x261A0B byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xAFE7B byte(s)
0x00007FF9A48820A7, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x2620A7 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xB0517 byte(s)
0x00007FF9A4883362, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x263362 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xB17D2 byte(s)
0x00007FF9A488179E, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x26179E byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xAFC0E byte(s)
0x00007FF9A4881B85, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x261B85 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xAFFF5 byte(s)
0x00007FF9A48820A7, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x2620A7 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xB0517 byte(s)
0x00007FF9A4883362, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x263362 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xB17D2 byte(s)
0x00007FF9A484E3A6, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x22E3A6 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x7C816 byte(s)
0x00007FF9A67D898F, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x21B898F byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x2006DFF byte(s)
0x00007FF9A48B8DCE, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x298DCE byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xE723E byte(s)
0x00007FF9A48C6A05, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x2A6A05 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xF4E75 byte(s)
0x00007FF9A48C849B, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x2A849B byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0xF690B byte(s)
0x00007FF9A4861D72, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x241D72 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x901E2 byte(s)
0x00007FF9A480BED9, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x1EBED9 byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x3A349 byte(s)
0x00007FF9A48D2B1C, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0x2B2B1C byte(s), ?SetShouldSuppress@SBUnixSignals@lldb@@QEAA_NH_N@Z() + 0x100F8C byte(s)
0x00007FF9A471445A, W:\binary\liblldb.dll(0x00007FF9A4620000) + 0xF445A byte(s), ?RunCommandInterpreter@SBDebugger@lldb@@QEAAX_N0@Z() + 0x21A byte(s)
0x00007FF6EB084568, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe(0x00007FF6EB080000) + 0x4568 byte(s)
0x00007FF6EB0852A9, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe(0x00007FF6EB080000) + 0x52A9 byte(s)
0x00007FF6EB0AADB4, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\lldb.exe(0x00007FF6EB080000) + 0x2ADB4 byte(s)
0x00007FFA6C42259D, C:\WINDOWS\System32\KERNEL32.DLL(0x00007FFA6C410000) + 0x1259D byte(s), BaseThreadInitThunk() + 0x1D byte(s)
0x00007FFA6D34AF38, C:\WINDOWS\SYSTEM32\ntdll.dll(0x00007FFA6D2F0000) + 0x5AF38 byte(s), RtlUserThreadStart() + 0x28 byte(s)
```
There should be diagnostics logs in my Temp folder according to this message
```
LLDB diagnostics will be written to C:\Users\{USER}\AppData\Local\Temp\diagnostics-897c9d
```
But `diagnostics.log` file is competly empty.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW9ty47gR_Rr4BbUqEABJ8MEPvEjZrcxMNpZ3JsnLFEhCEjK8hQR9-ftUg7IuHFrZrCxrUhXXTNkU2eecRgONblKUXafXlVK3yI2Qm9zI3mzq9vZ-o-6ULOJWV2tVrXWlVHuT1vnz7YcPSYR1h7NWdhtdrfHjRlVYl9i0z3BoaqyeVNYbhZFHVq0sFX6QrZZpoZBHcFaXpaxyDP_NRrUKwHTVGVllCtcrLHFWyK7DZiMNzurKSF11uNvIVuVfG9PCxTq3l2qDSIhI-GshzapuS8RC_EVXef3YYcfBlP1MMSJhXJeNLlQ7QPadykFl2usi32q14liIPy4_x_jBCWbcGZC_gMWDajtdV8BYFHmKH0G1UZ1RORghEtqPwY5gRIX1pihUjldtXeIH3fWywJ3pc13jl5MtosHOkpLB0mp6sevqvs1Uh-sKOz6Q5ypTZapaTAnlgzki4Udd6VIWOKtzBX61qmnrvM8UTvs1XOKR4V_WNHBIma6yos8VRizWdWdaJUvE5gPaMPb3qrND60eIhE2fFjpDDE4PZ6joDLiOWLiPC6BVBrE5fhi0YfsDI_Qgi14hKnYnANhPBkZ8EutPynzeWiMagCFulenbagvKIrxDalr9II3aKj0tcWtsnUy2f5BQVwaXUlcD224ErOYdXl_pf_XqGA9mA0Ys2V9Vym_q63Dp7jJEBXUBmH2PmtU9IMSIxRhRem8BKd1_FG457OHOTFV5cQBnzY4CZHUMQ3Cog1PQ8bul0LGW2Tgwr-sawvMyCwe2MDO6rrrj-Wo2uttOWgcwo_EKJSGoxqExMtsMa9HUWBv8qM0G0o39SDbNTD2pgYuBwVIZnLZKfmtqiHBdDUEmIawi3PYVbtp63coS4DbaQGI6MEAkhKjt8tpLCpvKb4iE3nBtozIzZMnB5aWR2TfTykzhtapUK43KcfqMDzLA1PIfjd38KVMNjB2O69zmLPIUE_vjQhQRZQSTJzj2V6vAZTLIiedaliEyy-i3Sj8t9bqSRbf9SJnlpu6LfNk3Tau6ziYxg2iM07oubHyp-AIXu3FRPJQ_NW39T5UZ5MZ3qlCyU8iNU13BaZ0C1ywvCkQj8kQt_3bhI8qcI3W5kDlX11PnWv69OnqkLhN-4PHrqeOWf6-OHUc2ZYqnV4ys5d-r4yN1nKvsmuqAf6_OHalzBZPXVAf8e3XeOLIpCa4a2ZQEe3X-WN0qverYAf9enfih513ww847SMbHe0Xm-4yIK-Y7y79Xd7RXuFkqSHbNfMetgL28481CKiLVFbcyavn36kabhco9j15THfDv1Y02C7US9JoJz_Lv1Y02i4CsPHLNEgr49-pGmwUXIr3m2Fn-vbrRZrGSrnNNdZZ_r-54swgYkf5xgZeotF-vVTsc3_VVPFT7v1RGtU2rDHTuYtD1Bvocq2Cv72C78AhhuUsE-y_QARp6H1vbEsF2wJSMgAPqrP4gMJjugZ1j4FUO2-8fA6b5busE5IP8Kr2MU-oGOSDHA_KXXz4lf_myRG68fO6MKhlFbvzn-d2n-QdGZ8mHD8MAg9Uekx1i5ozLFRPTmH9f3s8_WszK5EWxbxnAZAt43NSe7vCcYLa9y_Of7wqd0fFJnlKX-29ZAaW6ku3zVPdEgGm6t5NceGngvmWt86oOyoFpuouD9OhI8pZ1w-s6PGCa7tdAByXSfx8dwDTdmYEOxt60FDihA5imezAbFz94y4LpVFz8QE13W1ZHKt7yDskpHalwp_uqa84P8YPMj-BYB1dMeu-igwLTdFckPT8XgVi9iw4nBarpBkhykYo8e58FEwDTdKcjucg8Sd5nwUhgmu5pQIfgwfskdglM090LbHRO7r_PguHANN2nSC5IqvK3rLVf1eEoYJruSCQXOU2ddylAaApM072H5L7D-agAObe6f1XJCqgm2wxPpURw1xN4W2P-un3WsNCF6pAbf9RZW3f1yuDPQ024tDUhcmNKKNSfoLGvtAHezzFy4_u6LsDyQ_FQIjd-8vh39TQmT9fgdKmc6mSuNQRU5ik_KO_fhXe4leV6Yrr5ehmLifZpN0zXVbwVtFgEIY-gmYhhMZxcAeLQxqPw97BwIrxtE2KcPhuFqOjsg8cYI7b4PglwcpwruH2khzhBnPx1HoZfP_389RPi5B8vjx0tAXOZmB8THHshvChww_O8oBwwLuhFECRxeMoJ4YQkOtMJDzAu6ES4mPvRSScoCf1znQCMCzoREdfxTzox1K3nOWGr7As64fgJPT2d_GB-9nTyg_lFp1NM5qediKCjOtOJSLgXdWKxcP-_Jv4X1gSfs9A70wkKGBd0wo-F473uhOcnIhCLM51wIgC5oBeUEC9ZLE4FIxJJfG6CCgDjgm7MfcpOJqjYC8m5CSoEjAs6seBz_2SCigUPzq08QsC4pBNeQE5WHp6T-OcmKA4Yl6wBiTM_maBINE-C85xw5oBxyXI8ZDw45URCI-fMnoJGgHFBJxxCFuJUT2HvLpzZUywAYsKJ6RsT4MjuBsbYi799_US-T7LOqw2FN4-2fSiN37UtPxwSK-J4SGz_e0qzS8PgB9MMkk5pDsMk4j-YZgqaXhMderF93JociP4dj1vFEYAzSjuAN57rkezU_aZVMv-l0uZ-01ffjldh8rrEhPFwwcS0xMmnt4f6EroYBRHAxvruTPFbp9pB4tLI1hyvr_FUHT0RvrcvOHQ2H-FU4VzLdVV3RmcdLup1h3WFy2d8r8oGr-oiVy2WWVa3-fZNCvuN6FJ1nVyrEbp9D-MQ71EXBXA8ttoYVYH5dljAA5gsyI9-W87vkJ8gNw6bJpFGwhyqM1nAnFJlg9z4APMnEfhZkH_vV9QbjDxycOmsqNfII3ilC_tGR1aXjTLFM1ZlY55nN_ktywMWyBt16_iMc58Kxm42tyJjVGbEyYlPHc_hfurIwBFSpcQXlAU3-pYSyh3q-JQSwtiMBhnxmKLMDdxMrTLEiSqlLmZF8VDO6nZ9o7uuV7cOJcwhN4VMVdHZ11sordQjtmcRLKvkpr21X09I-7XdFnRnuj2M0aaw78XAUCM3wXEru83wvkvfQYTOe8HFfmn9lfdabvq2uN0Y09jb5XSB6GKtzaZPZ1ldIroAkdtfuy9X0IV1rUN0sfX94Zb-OwAA__9TmDki">