<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/129884>129884</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            An error occurs when debugging with LLDB after compiling with Clang
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          kaixinlalala
      </td>
    </tr>
</table>

<pre>
    Test Case:
```
#include<cuchar>
#include<variant>
#include<tuple>
#include<functional>
#include<any>
#include<new>
#include<optional>
#include<utility>
#include<type_traits>
#include<iostream>

class Container_0 {
public:
    long long member_1;
    unsigned long int member_2;
    double member_3;
    // Constructor
    Container_0(long long m1, unsigned long int m2, double m3)
        : member_1(m1), member_2(m2), member_3(m3) {}
    // Destructor
    ~Container_0() {}
};

class Container_2 : public Container_0 {
public:
    long long member_6;
    unsigned long int member_7;
    // Constructor
    Container_2(long long m1, unsigned long int m2, double m3, long long m6, unsigned long int m7)
        : Container_0(m1, m2, m3), member_6(m6), member_7(m7) {}
    // Destructor
    ~Container_2() {}
};

class Container_1 : public Container_2{ 
public:
    long double member_4;
    unsigned char member_5;
    // Constructor
    Container_1(long long m1, unsigned long int m2, double m3, long long m6, unsigned long int m7,
                long double m4, unsigned char m5)
        : Container_2(m1, m2, m3, m6, m7), member_4(m4), member_5(m5) {}
    // Destructor
    ~Container_1() {}
};


double func1(int p_0,double p_1,long long p_2)
{
    double var708 = p_1 * 1.5 + 3.7;
    long long var709 = p_2 + static_cast<long long>(var708);
    long long var710 = p_2 + var709;
    for (int i = 0; i < p_0; ++i) {
        double var711 = p_1 / 2.0 + i * 0.3;
        double var712 = p_1 * 1.2 - i * 0.4;
        double var713 = var711 + var712;
        Container_1* var714 = new Container_1(var709, var710, var713, p_2, var709, var711, static_cast<unsigned char>(i));
        float var715 = static_cast<float>(i) * 1.1f;
        unsigned char var716 = static_cast<unsigned char>(i % 256);
        long long var717 = var710 * 3 + var709 * 5;
        var714->member_4 = var711 * var713 + var712 * var715;
        var714->member_5 = static_cast<unsigned char>((var716 + var709) % 256);
        var714->member_6 = var710 - var709 + var717;
        var714->member_7 = var717 + var715;
        delete var714;
    }
    return p_1;
}

short int func4(double p_0)
{
    short int var589 = 0, var590 = 1, var591 = 2;
    long int var592 = 100;
    Container_1 var593(10, 20, 30.0, 40, 50, 60.0, 'A');
    int var594 = 5;
    Container_2* var595 = new Container_2(100, 200, 300.0, 400, 500);
    var592 = var595->member_1;
    p_0 = func1(var594, p_0, var595->member_1);
    for (int i = 0; i < 5; ++i) {
        short int var596 = 3;
        long double var597 = var593.member_4 + var595->member_6;
        unsigned char var598 = var593.member_5 + var591;
        p_0 = func1(var594, var595->member_3, var595->member_1);
        var589 = var590 + var591;
        var590 = var596 + var593.member_5;
        var591 = static_cast<short int>(var597 + var598);
    }
    return var589;
}

double func7(unsigned long int p_0)
{
    double var835 = 1.23, var836 = 4.56, var837 = 7.89;
    unsigned long int var838 = p_0 + var836;
    double var839 = var835 + var836 + var837;
    for (unsigned long int i = 0; i < p_0; ++i) {
        double var840 = 0.1, var841 = 0.2, var842 = 0.3;
        double var843 = var835 + var836 + var837 + var839;
        unsigned long int var844 = p_0 + var838;
        short int var845 = func4(var836);
        var840 = var835 * var836;
        var841 = var839 + var837;
        var842 = var836 * var835;
        var838 = var844 + p_0;
        var844 = var844 * var838;
    }
    return var837;
}

double func11(unsigned long int p_0,int p_1)
{
    double var297 = static_cast<double>(p_0) / p_1;
    double var298 = var297 + p_0;
    Container_0* var299 = new Container_0(p_0, p_0, var297);
    var299->member_1 = p_0 * p_1;
    var299->member_2 = p_0 + p_1;
    var299->member_3 = func7(var299->member_2);
    var299->member_1 = var299->member_1 - static_cast<long long>(var297);
    var299->member_2 = var299->member_2 + static_cast<unsigned long int>(var298);
    var299->member_3 = var299->member_3 * var298;
    double result = var298;
    delete var299;
    return result;
}

// Declare global variables
unsigned int var989;
unsigned int var990;
unsigned int var991;
unsigned short int var992;
int var993;
int var994;

int main()
{
    // Update global variables with local ones
    var989 = 42;
    var990 = var989;
    var991 = 25;
    var989 = 100;
    var990 = 150;
    var991 = 200;
    var989 = var990 + var991;
    var990 = var989 - var991;
    var991 = var989 * var990;
    if (var989 > var990) {
        var992 = 300;
        var993 = 400;
        var994 = var993 - var992;
        Container_0* var995 = new Container_0(1, 2, 3.14);
        var995->member_2 = var992;
        var995->member_3 = func11(var995->member_2, var993);
        delete var995;
    } else {
        // No operation needed
    }
    return 0;
}
```
The result printed by gdb:
```
GNU gdb (GDB) 16.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./test_case_0_O3.o...
(gdb) b func1
Breakpoint 1 at 0x11dc: file ../src/test_case_0.cpp, line 72.
(gdb) b func11
Breakpoint 2 at 0x16dd: file ../src/test_case_0.cpp, line 158.
(gdb) r
Starting program: /home/hzw/debugger-test/gen_progs/1740690590_rB4oQQbL/reduced_test_case/clang_O3_elf/test_case_0_O3.o 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 2, func11 (p_0=300, p_1=400) at ../src/test_case_0.cpp:158
158         double var297 = static_cast<double>(p_0) / p_1;
(gdb) n
159         double var298 = var297 + p_0;
(gdb) 
161         Container_0* var299 = new Container_0(p_0, p_0, var297);
(gdb) p var298
$1 = 300.75
(gdb) q
A debugging session is active.
```
The result printed by lldb:
```
(lldb) target create "./test_case_0_O3.o"
Current executable set to '/home/hzw/debugger-test/gen_progs/1740690590_rB4oQQbL/reduced_test_case/clang_O3_elf/test_case_0_O3.o' (x86_64).
(lldb) b func11
Breakpoint 1: where = test_case_0_O3.o`func11(unsigned long, int) + 13 at test_case_0.cpp:158:41, address = 0x00000000000016dd
(lldb) c
error: Command requires a current process.
(lldb) r
Process 2853025 launched: '/home/hzw/debugger-test/gen_progs/1740690590_rB4oQQbL/reduced_test_case/clang_O3_elf/test_case_0_O3.o' (x86_64)
Process 2853025 stopped

* thread #1, name = 'test_case_0_O3.', stop reason = breakpoint 1.1
  frame #0: 0x00005555555556dd test_case_0_O3.o`func11(p_0=300, p_1=400) at test_case_0.cpp:158:41
  155 
  156  double func11(unsigned long int p_0,int p_1)
  157  {
  -> 158      double var297 = static_cast<double>(p_0) / p_1;
  159      double var298 = var297 + p_0;
  160 
  161      Container_0* var299 = new Container_0(p_0, p_0, var297);
  (lldb) n
  Process 2853025 stopped
* thread #1, name = 'test_case_0_O3.', stop reason = step over
  frame #0: 0x000055555555570f test_case_0_O3.o`func11(p_0=300, p_1=400) at test_case_0.cpp:159:28
  156  double func11(unsigned long int p_0,int p_1)
  157  {
  158      double var297 = static_cast<double>(p_0) / p_1;
  -> 159      double var298 = var297 + p_0;
  160 
  161      Container_0* var299 = new Container_0(p_0, p_0, var297);
  162 
  (lldb) 
  Process 2853025 stopped
* thread #1, name = 'test_case_0_O3.', stop reason = step over
  frame #0: 0x0000555555555719 test_case_0_O3.o`func11(p_0=300, p_1=400) at test_case_0.cpp:161:27
  158      double var297 = static_cast<double>(p_0) / p_1;
  159      double var298 = var297 + p_0;
  160 
  -> 161      Container_0* var299 = new Container_0(p_0, p_0, var297);
  162 
  163      var299->member_1 = p_0 * p_1;
  164      var299->member_2 = p_0 + p_1;
  (lldb) p var298
  error: Couldn't materialize: couldn't get the value of variable var298: Invalid address size for DW_OP_deref_size: 16

error: errored out in DoExecute, couldn't PrepareToExecuteJITExpression
(lldb) q   
Quitting LLDB will kill one or more processes.
```
>From the results printed by gdb and lldb above, it can be observed that after compiling the code with Clang, debugging with GDB proceeds without any issues, and the value of variable var298 is correctly output. However, when debugging with LLDB, the value of variable var298 cannot be retrieved.

Compilation command:
```clang++ test_case_0.cpp  -O3 -o -g -fno-inline```

Debugging command:
```
gdb <executable file>: Launch GDB and load the executable file
lldb <executable file>: Launch LLDB and load the executable file
r: Run the program
break <function name>: Set a breakpoint at the entry of the specified function
n: Execute the next line of code (without stepping into functions)
c: Continue running the program until the next breakpoint
p <variable name>: Print the value of the variable
q: Quit
```

Compiler Version: clang version 19.1.7
Debugger Version: GNU gdb (GDB) 16.2       lldb version 19.1.7
Operating System Version: Ubuntu 22.02

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWkuT27aT_zScC2pYIChS5GEOHI3lzZYrdhJ7_7UnFURCEjYUQAPgPHLYz77VAPgUNWP779TGSckaoNHPXze64aFa86Ng7C5I7oPk4Ya25iTV3Z-UP3NRU_jvZi-rl7vPTBu0oZoF77bB_SbIiwAXQYr9_7gISMxFWbcVC-JN2ZYnqoL43XzjkSpOhVnYMW1Ts4X1QytKw6Wg9cImFS8Lq4I9LazK5iqb1vCamyVW5qVhO6MoN3phl0ttFKNnv4WLsqZao40UhnLB1A6jYH0f4KJp9zUvgxhoEEKoluLoPs7svGdqFwXxvd9rhQ1J5fa5MB0NGWgq2e5r1m3Ew0ZAtgHZggbaqLY0UvmNkU4ByUbyo4BslmQSWO_kxAHJPSMrJS4GxUkGPHIg7xUlGZwfr8WwBmysR9YPU30f2Ezd_53qOzkHn9bgBYcTq5tz94_EIf2GOKy_y93kx9y9GeuWXjm0vgzL1G9OnGPugjhEJIX9dLq2hrX1j0SJfE-UouUokWB9j65FaQr51UKcoOR0-8l3xSj6e2O0GcWo-zOxaTU56-xIXostWYjtxuvgUDHEdAW0q-laAmvJj8Q5ei3OAS68SVC1gRRc0AAUN36jAQ6bwW_NjjhDXYKOitsjVWucoSB-gEMoIAWKwgQF5B7F4SgHB172RO5PEEupDTW83JVUmyAexELBJpmTAOKvMIvwhJnjPxAfpELeRm4JcRDf268ba3R8D8cCcs87jw3xHBkZRSMjt4iE2Erj1mQcjqr7_CCZeYeg2_7Y6vqx2B7rRHvDIjI9MAl54UhW9qBgT7Pc8Y4hG--1_puFpQ3xBs2ILHqn4ZlkgAsRt7jNp6odakmN45JYjaZs7PZw3PsmOkyZTNPNMksXmC3phAKSIJKkF4rN0LMe_IytFvEIRnYhmZ53Tr4N4ndd7k4jVfTx64M2rL7Fa8lVC9b5cIIzBshbLy7bfCEnHVt9O1jrNV6_cXzktPVwamZcxWpmPJpHQB8qmWKmVcJWG1ecXK3ChT5JZWxlhhIFtbEvTHheiAbaR6qSLPc57hCc5K44RP3PLo3JrJh0x3OXrBHGA8H4RrQ00CW59CH2M8ah_XtlPxP7mfq1gKyLgKwnAemFOeAkS6KIR0ySJwvpTKwGXgWvQ6-E1wJPZI6Mc1xHwRy1tc3O-au7GZyarj4MPp0eJt9YbJNXS-00jLnDZ7yQuUONTPL1YFAcDtno8DjVM32jsCR5tsAsGZhFUwbXPXUhOv4Gx3Ux8vjtoHtF-AjZnbc6ykH1hSPRQnXpHd9ft9avHb_pzXuRu07nWfqO2gvoVS_7rYU0HsKaxQ7yUUg6z2Wxw8MqTNJ-yQV_HWb5a-OAJe0alN6jWZxezGl2uXe_1aInHr6uL8B-KfPf6DOylQsrDruSla0iv0L6FeJXrnYd2Sp-05Dha34lNyZOXK0unZhND05yOFslfYKsHLDA6wug72zulS0uQtRTRgNlvhiUnpIMlOnA8zIrOnR0NpJ7H645w9WUrLhwwVJy9LotJQe0V9eyY-O-RdfzhPjyN01nt-9y2aWZ7VebcZUf8-iNJz7rJ8ZPBtXCkeULFxLupI0vCpKv53cQyfNxCRwhqpiqeEFLJuh7nTbugbd2wJux-hatFpZv3xxU3rSYLPNeGoMucDGSkr0uJV6WEqM-htkFGBTTbW2Gg2OKvo8j-UisB7k7OAN5P6OWNVUMHWu5pzWy74r7mukAF715vlzkXRm_2MjxtY1otjGpP3num7z-53j286ofie0bAOXCjc2TfPOWfGkqai4NQU_cnFAtS1ojKaxhPiK5v8lXZBKofLi28yyfbfneNJkue0aTnnTEKUrm657NnH5oLfKhtcjz6BX93GRwSRONaTyo-jjZFveAHFad1HcdwcXN5wLlmj18WXXz3GF5tbi3GgyKO1WvDsi413Opo4YCZm9ce8nGYbRauqnySQdHBvHkDdKhIkW-WZyx8iUTQDqXO6RfnieT2waxWrOZQz1ef5VINkxRw6VAgrGKVdduKTzJ3dE_Fnw-9WWhUVwYVqH9CzpWe_foNyZ9_-sX2ICgv3-4hzBHaUgCXGxk86L48WRgawMbBJMV2irG0B_yYJ6gPGxlKyqrKrjhF1GGAS4-8JIJzdD7Tx8eY-ic4gKBmPefPqBHpjQYFiOpUE0NU9BmnYxpQDXrgaNoQ6mOAdnWjpGGxaYOT-bs_3Xh84lrxDU6gDLaKwNiXmSLQC-7YSTMCOLIEBUVUqzi2ii-bw1D3ITOTYoBn18_on8Vv_9e_Pr5v8EOI5E5McSeDYOrnKkzN96HNX2yJ18ahgJC9Ek-oVI2L1wcA0KsoG75iSpFhXmBdWg4K2Yor3XY6f_-4R49UY1KKQ782CpWIarh9HOW7tLVbVPe1ly0z7dH0QaELIh157z7nZDJ4ljkViq0b49IsUYqw-3F5J4huRTaXv81o5ohzZhHiYuL7gPz9PQUDsHp3U62ACyy3bdHiFQQv7PyuKisF8HMMxUtra13pDkxhSpZtmcmjFNTMS1bVTKNpKi5YIia4XV6Do83tJhwHtTxHjixurER9o50P098SxslG6nRk1QVeNVIpBlV5cn793ymotJIMUBvBdsBIZ44DIHT74xW4GD9ct7LGlAqzygMyNYwbaBJYDu8-xiH0pEHJLOq52jvZ1Jc3CtG_2wk3G4Rogbh5yiqSkD4gdcMhcBNq3LKMywba5x14Zos8p4xJ555WlXfwzxKsil3FeDiD0MdsBolj4qegWFAtid5huic_nqC6LB9ezwydQucIWZM7IAcgBOtVzjNcZLjnbpfyd9-238IyFaxqi1ZtetVCci2rKk47j7GO1YfFtyKQLXk_vNJMVohJxL0ajV81nxv7M6u2iMmoBmoggQq6Be7f5LaTIlqvldUvUCcbVECmPkcHSXodnwm1BLGQOKhN_Y4ONGFAvnWO36IsW_AoyB-sO9AOQTmlUjERZRkAYZPdDlE_tiAMYRTWM75IufrY8dwHo6nEbp-lf_gLDJIaLpeFxb9bBljHK6TCdnXABfFCAKaaXv9cI1oafgjC7_p5qzrpaszIJndIDkyVB2ZQaVi0GvawF_iEvCDi02rFFwr7JmVrQH4Ic2MqyPr_5d8CQgEMnOQDkgeTm1brhwRpPeTvUDB9xc8U7w8J0NUYSQi7hEgigHoy-iOi5Vt7GhVKaa1ezl5xqM_tm5NlC0DXDClpHL_oGeLNVLsa8sV04ii0nu_UbJkWs9MhTL2ye0gkiUxJgmqaSvKE6tcOftnRGhBTW1k09hW0ZpUIFeLUEBi60RBzy5SAVnP2FurNpYDUoxqKSzhfhTsMLK38UFZLiTG4A0Xi6T7k1bVqzB4tdS9ggAQHCUJ8l_Svhx930MMnF2jvueGFh711fPff5vpy-W3PtFEKfYmdZXyJz7ZjDAt7MIrcPkZWNGGNUg-MvU2TNb48HNhkgdxQbKfi46fCAwPtH8SOqKUoDlM_mkoifKfipIU7iuy_tnB_fG4Olj8ncGN0rh_0_jG19soXV05cvURdwShUU-G0OgSbutKAEbQGeZ9Tmv-lx3Wy2EHmicYFh9p3TIkD_07Xf-kWaBfxCOtedW3A5r_xexM9vCv3cdPu4opdthpzztK3U3Yq2G_sArJ1iAu0IN8Z_svBj4cKfJJsYYq9rnb_s9fPr97bpRrG6fNwlcYTnHxW8uNHXs-fICBntc1-hM-pGBIKnSWinXdBtPzdnMLo6Hpe049e66xEzPIQ3QvH62u3KCSCrRnSO41U48wgp6oQfRgmB1PG16DNsC0lBVz75wb6C_sr1f1rbBdh-HcKscq9yIK7qHiBXGtW2afBaif46-FBnrpUirFSlO_gHub1oToP-QTg0QnG2gSxVwu-MrO4a8xLqkQ0oCpihnF2SOr_Dy1sWa6xwM_kc_a89IZfA9onZUDhG4_xuhWotsjuj0Iecvto8Oks8fFQ6_wsoAAF_bZLN6MGnmYn6FcxAX6YNtG62AbREkr_6g0pcaFje9bfCy43mBkcf57K-x2N4TjwvZxaPSrvrZye_Z_MIPouNWjLhGZMOoFggI_6IaV_MBZhToWAS4EHPdZYqkEezbueUAeHPQCknWYgtLfuFcnI3s22l2-Zffbd1y0DKlWiA7B3grUCsPrQcqgb4CLBnW_-Ay-GNn2CXJpCjH3gyMNcPEVyCCB55NdBzGm0H-5F8v-97KRhVb_kBnlYRSue8AsHVh-YvWzsY3-BbOP7gVYHNEfL9qwc880LtCXfStMiwgJMcyTN9VdXOVxTm_YXbReRVGG8yi6Od1VURWnBDNarva0TNN9FlekykrCkiRO2f6G3xFMEhzjJIpJlERhnFc0ZRGJq5xkqyoKVpidKa_Dun48h1Idb2xZuItInmWrm5ruWa3tr7YT4hOOBMnDjbqDA7f2QXCFa66NHlgYbmp2VwhXkZEsy1bpq0Xioq4N5eymVfXd9IXyyM2p3YelPAdkCxL9X7eNkv_DSpjPusK29UY83pH_CwAA__8WIdOc">